var searchPopup;

$(window).addEvent('domready', function(){
	$('searchBox').addEvent('keyup', function(event){
				if(this.value.clean().length > 2){
					createSearchPopup(this.value);
					return false;
				} else {
					closeOverlay();
					if( (typeOf(searchPopup) == 'object' || typeOf(searchPopup) == 'element') ){
						if($(searchPopup)){
							$(searchPopup).destroy();
							searchPopup = null;
						}
					}
				}
			});
	$('searchBox').addEvent('keydown',function(event){
					if (event.key == 'enter'){
						event.preventDefault();
						event.stopPropagation();
						event.stop();
						return false;
					}
			});
	$('searchBox').addEvent('focus', function(event){
					if(this.value == 'Zoeken'){
						this.value = '';
					} 
					$('idSearchBoxHighlight').setStyle('display','block'); 
					$('searchBoxContainer').addClass('clsSearchBarHighlighted'); 
					$('searchBoxContainerBG').removeClass('clsSearchBoxBg'); 
					$('searchBoxContainerBG').addClass('clsSearchBoxBgHighlighted');
			});
	
	$('searchBox').addEvent('blur', function(event){
					if(this.value == ''){
						this.value = 'Zoeken';
					} 
					$('idSearchBoxHighlight').setStyle('display','none'); 
					$('searchBoxContainer').removeClass('clsSearchBarHighlighted'); 
					$('searchBoxContainerBG').removeClass('clsSearchBoxBgHighlighted'); 
					$('searchBoxContainerBG').addClass('clsSearchBoxBg');
			});
	}
);

function closeSearchResults(){
	closeOverlay();
	searchPopup.destroy();
	searchPopup = null;
}


function createSearchPopup(strSearchTerm) {
	// Only search with words larger than two characters
	if (strSearchTerm.clean().length > 2) {
		var jsonRequest = new Request.JSON({
			url			: "/script/search/", 
			onSuccess	: function(objData){
				if( (typeOf(searchPopup) == 'object' || typeOf(searchPopup) == 'element') ){
					if($(searchPopup)){
						$(searchPopup).destroy();
						searchPopup = null;
					}
				}
				openOverlay(104);
				var objDiv = new Element('div').addClass('clsPopup').addClass('clsPopupSearch').setStyles({'top':'40px','z-index':'112'});
				searchPopup = objDiv;
				
				var popupClose = new Element('div', {events:{click: function(){ closeOverlay();$(this).getParent().destroy();}}}).addClass('clsIconClose').addClass('clsIconCloseInPopupPos');
				popupClose.inject(objDiv,'top');
				
				var hideShadow = new Element('div').addClass('clsHideShadowInSearch');
				hideShadow.inject(objDiv,'top');
				
				var popupTitleBigSearch	= new Element('div').addClass('clsPopupSchemaTitleBig');
				popupTitleBigSearch.setProperty('html','Zoeken op &lsquo;'+strSearchTerm+'&rsquo;');
				popupTitleBigSearch.inject(objDiv,'top');
				var popupIconSearch	= new Element('div').addClass('clsIconSearch').addClass('clsIconInPopupPos');
				popupIconSearch.inject(objDiv,'top');
				
			
				var categoryWithItems = new Element('div').addClass('clsFoundCategoryWithItems');
				
				// Found results?
				if (objData.strMessage != '') {
					var categoryNameFound = new Element('div').addClass('clsCategoryNameFound');
					categoryNameFound.setProperty('html','Bericht:');
					categoryNameFound.inject(categoryWithItems, 'bottom');
					
					var list = new Element('ul').addClass('clsSearchResultsList');
					new Element('li').set('html', objData.strMessage).inject(list, 'bottom');
					list.inject(categoryWithItems, 'bottom');
					
				} else {
						
					if (objData.arrResults.AtoZ != false) {
						if (objData.arrResults.AtoZ.arrItems.length > 0) {
							var categoryNameFound = new Element('div').addClass('clsCategoryNameFound');
							categoryNameFound.setProperty('html','A tot Z items');
							categoryNameFound.inject(categoryWithItems, 'bottom');
							
							var list = new Element('ul').addClass('clsSearchResultsList');
							for(i=0;i<objData.arrResults.AtoZ.arrItems.length;i++) {
								var objItem = objData.arrResults.AtoZ.arrItems[i];
								new Element('li').set('html',objItem.strTitle).addClass('clsCursorPointer').addEvent('click',function(){closeSearchResults();getAtoZItem(this.intId);}.bind(objItem)).inject(list, 'bottom');
							}
							list.inject(categoryWithItems, 'bottom');
						}
					}
					
					// Announchments
					if (objData.arrResults.Announchments != false) {
						if (objData.arrResults.Announchments.arrItems.length > 0) {
							var categoryNameFound = new Element('div').addClass('clsCategoryNameFound');
							categoryNameFound.setProperty('html','Mededelingen');
							categoryNameFound.inject(categoryWithItems, 'bottom');

							var list = new Element('ul').addClass('clsSearchResultsList');
							for(i=0;i<objData.arrResults.Announchments.arrItems.length;i++) {
								var objItem = objData.arrResults.Announchments.arrItems[i];
								new Element('li').set('html',objItem.strTitle).addClass('clsCursorPointer').addEvent('click',function(){closeSearchResults();getAnnouncementItem(this.intId, false);}.bind(objItem)).inject(list, 'bottom'); 
							}
							list.inject(categoryWithItems, 'bottom');
						}
					}
					
					// News
					if (objData.arrResults.News != false) {
						if (objData.arrResults.News.arrItems.length > 0) {
							var categoryNameFound = new Element('div').addClass('clsCategoryNameFound');
							categoryNameFound.setProperty('html','Nieuws');
							categoryNameFound.inject(categoryWithItems, 'bottom');

							var list = new Element('ul').addClass('clsSearchResultsList');
							for(i=0;i<objData.arrResults.News.arrItems.length;i++) {
								var objItem = objData.arrResults.News.arrItems[i];
								new Element('li').set('html',objItem.strTitle).addClass('clsCursorPointer').addEvent('click',function(){closeSearchResults();getNewsItem(this.intId);}.bind(objItem)).inject(list, 'bottom');
							}
							list.inject(categoryWithItems, 'bottom');
						}
					}
					
					// Calendar
					if (objData.arrResults.Calendar != false) {
						if (objData.arrResults.Calendar.arrItems.length > 0) {
							var categoryNameFound = new Element('div').addClass('clsCategoryNameFound');
							categoryNameFound.setProperty('html','Kalender');
							categoryNameFound.inject(categoryWithItems, 'bottom');

							var list = new Element('ul').addClass('clsSearchResultsList');
							for(i=0;i<objData.arrResults.Calendar.arrItems.length;i++) {
								var objItem = objData.arrResults.Calendar.arrItems[i];
								new Element('li').set('html',objItem.strTitle).addClass('clsCursorPointer').addEvent('click',function(){closeSearchResults();getCalendarItem(this.intId);}.bind(objItem)).inject(list, 'bottom');
							}
							list.inject(categoryWithItems, 'bottom');
						}
					}
					
					// PageBlocks
					if (objData.arrResults.PageBlocks != false) {
						if (objData.arrResults.PageBlocks.arrItems.length > 0) {
							var categoryNameFound = new Element('div').addClass('clsCategoryNameFound');
							categoryNameFound.setProperty('html','Pagina\'s');
							categoryNameFound.inject(categoryWithItems, 'bottom');

							var list = new Element('ul').addClass('clsSearchResultsList');
							for(i=0;i<objData.arrResults.PageBlocks.arrItems.length;i++) {
								var objItem = objData.arrResults.PageBlocks.arrItems[i];
								new Element('li').set('html',objItem.strTitle).addClass('clsCursorPointer').addEvent('click',function(){closeSearchResults();self.location.href=this.strHref;}.bind(objItem)).inject(list,'bottom');
							}
							list.inject(categoryWithItems, 'bottom');
						}
					}
				}
				
				//objDiv.innerHTML = strHtml;
				categoryWithItems.inject(objDiv,'bottom');	
				objDiv.inject($(document.body),'bottom');
			}
		});
		jsonRequest.send({method : 'get', data : 'search='+strSearchTerm})
	}
}

/*
// ----------------------------------------
// 		EXAMPLES JSON RESULT
// ----------------------------------------
{"arrResults":{
"AtoZ":{"arrItems":[{"intId":"3","strTitle":"Beheerders <b> bla<\/b>","strContent":"<p>\r\n\tDegene die de gebouwen beheert, schoon houdt, en het gebruik van verschillende schoolruimtes faciliteert.<\/p>\r\n","strKeywords":"Concierge<b>bla<\/b>TEST","strLanguagecode":"nl","objCreated":{},"objUpdated":{},"intCreatedById":"1","intUpdatedById":"1","intActive":"1","strIndexChar":"B","blnSortingChanged":false,"blnDeleteFromList":false,"blnAddToList":false,"blnItemChanged":false,"blnDeleteItem":false,"blnIsNewItem":false},{"intId":"11","strTitle":"test","strContent":"","strKeywords":"","strLanguagecode":"nl","objCreated":{},"objUpdated":{},"intCreatedById":"1","intUpdatedById":"1","intActive":"0","strIndexChar":"T","blnSortingChanged":false,"blnDeleteFromList":false,"blnAddToList":false,"blnItemChanged":false,"blnDeleteItem":false,"blnIsNewItem":false}]},
"Announchments":{"arrItems":[{"intId":"179","strTitle":"Een andere mededling, over roosters","strContent":"<p>\r\n\t<img alt=\"\" src=\"\/uploads\/announcement\/attachments\/179\/0_small.jpg\" style=\"width: 117px; height: 117px; float: left; margin-left: 3px; margin-right: 3px;\" \/>Even een test met Kalender, level middel, hij staat aan. Categorie: VWO<\/p>\r\n","strShortTitle":"","strSubTitle":"","strLanguagecode":"nl","objCreated":{},"objUpdated":{},"objStartDate":{},"objEndDate":{},"intSortOrder":"4","intCreatedById":"1","intUpdatedById":"1","intActive":"1","strCategories":"HAVO|MAVO|VWO","strIconType":"agenda","intAttentionLevel":"3","blnSortingChanged":false,"blnDeleteFromList":false,"blnAddToList":false,"blnItemChanged":false,"blnDeleteItem":false,"blnIsNewItem":false},{"intId":"188","strTitle":"Test A","strContent":"<p>\r\n\tHavo toetsrooster test.<\/p>\r\n","strShortTitle":"Test A","strSubTitle":"Test B","strLanguagecode":"nl","objCreated":{},"objUpdated":{},"objStartDate":{},"objEndDate":{},"intSortOrder":"0","intCreatedById":"1","intUpdatedById":"1","intActive":"1","strCategories":"HAVO - toetsrooster","strIconType":"info","intAttentionLevel":"1","blnSortingChanged":false,"blnDeleteFromList":false,"blnAddToList":false,"blnItemChanged":false,"blnDeleteItem":false,"blnIsNewItem":false}]},
"News":{"arrItems":[{"intId":"124","strTitle":"Dit is een nieuwe test","strContent":"<p>\r\n\tZomaar even een inhoudelijke vraag...<\/p>\r\n","strSummary":"<p>\r\n\tLorem ipsum dolor sit amet, consectetur adipiscing elit. In at metus at est faucibus interdum vel quis sapien. Duis egestas molestie rhoncus. Fusce sed auctor velit. Sed vitae mollis nisi. Nullam leo est, facilisis ac iaculis vitae, aliquet sed odio. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque quis leo et urna lobortis consequat. Proin eget nisi purus. Suspendisse potenti. Pellentesque pharetra vestibulum erat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In at metus at est faucibus interdum vel quis sapien. Duis egestas molestie rhoncus. Fusce sed auctor velit. Sed vitae mollis nisi. Nullam leo est, facilisis ac iaculis vitae, aliquet sed odio. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque quis leo et urna lobortis consequat. Proin eget nisi purus. Suspendisse potenti. Pellentesque pharetra vestibulum erat.<\/p>\r\n","strLanguagecode":"","objCreated":{},"objUpdated":{},"objStartDate":{},"objEndDate":{},"intSortOrder":"22","intCreatedById":"0","intUpdatedById":"0","intActive":"1","strCategories":"MAVO|VWO","blnSortingChanged":false,"blnDeleteFromList":false,"blnAddToList":false,"blnItemChanged":false,"blnDeleteItem":false,"blnIsNewItem":false},{"intId":"114","strTitle":"Test bericht Casper","strContent":"","strSummary":"<p>\r\n\tDit is de korte uitleg die bij elk nieuwsitem verschijnt aan de zijkant van de index-afbeelding.<\/p>\r\n","strLanguagecode":"nl","objCreated":{},"objUpdated":{},"objStartDate":{},"objEndDate":{},"intSortOrder":"18","intCreatedById":"0","intUpdatedById":"0","intActive":"1","strCategories":"VWO","blnSortingChanged":false,"blnDeleteFromList":false,"blnAddToList":false,"blnItemChanged":false,"blnDeleteItem":false,"blnIsNewItem":false},{"intId":"112","strTitle":"Test E","strContent":"","strSummary":"","strLanguagecode":"nl","objCreated":{},"objUpdated":{},"objStartDate":{},"objEndDate":{},"intSortOrder":"2","intCreatedById":"0","intUpdatedById":"0","intActive":"1","strCategories":"HAVO","blnSortingChanged":false,"blnDeleteFromList":false,"blnAddToList":false,"blnItemChanged":false,"blnDeleteItem":false,"blnIsNewItem":false},{"intId":"168","strTitle":"Test jebfldjf etc of zo toch?","strContent":"<p>\r\n\tEn dit is een test inhoud voor het uitgebeide artikel<\/p>\r\n","strSummary":"<p>\r\n\tDit is een test tekst die ik voor de proef eens heel lang ga maken.<\/p>\r\n<p>\r\n\tIk gooi er wat enters in, en een <strong>dik<\/strong> stuk tekst. Als het goed is gaat hij nu <em>over de 80 karakters heen<\/em>.<\/p>\r\n","strLanguagecode":"nl","objCreated":{},"objUpdated":{},"objStartDate":{},"objEndDate":{},"intSortOrder":"14","intCreatedById":"1","intUpdatedById":"1","intActive":"1","strCategories":"VMBO","blnSortingChanged":false,"blnDeleteFromList":false,"blnAddToList":false,"blnItemChanged":false,"blnDeleteItem":false,"blnIsNewItem":false},{"intId":"171","strTitle":"Test pagina","strContent":"","strSummary":"","strLanguagecode":"nl","objCreated":{},"objUpdated":{},"objStartDate":{},"objEndDate":{},"intSortOrder":"8","intCreatedById":"1","intUpdatedById":"1","intActive":"0","strCategories":null,"blnSortingChanged":false,"blnDeleteFromList":false,"blnAddToList":false,"blnItemChanged":false,"blnDeleteItem":false,"blnIsNewItem":false}]},
"Calendar":{"arrItems":[{"intId":"116","objStartDate":{},"objEndDate":{},"strTitle":"Nieuw item","strContent":"<p>\r\n\tTest<\/p>\r\n","intMarkChange":"1","intAllDayEvent":"1","strCalendarCategory":null,"objCreated":{},"objUpdated":{},"intCreatedById":"1","intChangedById":"1","strStartDate":"2011-06-23 00:00:00","_objCategoryList":null,"_objAttachmentList":null,"strEndDate":"2011-06-23 23:59:00","intActive":"1","strCategories":"MAVO","blnSortingChanged":false,"blnDeleteFromList":false,"blnAddToList":false,"blnItemChanged":false,"blnDeleteItem":false,"blnIsNewItem":false},{"intId":"112","objStartDate":{},"objEndDate":{},"strTitle":"Testje","strContent":"","intMarkChange":"0","intAllDayEvent":"1","strCalendarCategory":null,"objCreated":{},"objUpdated":{},"intCreatedById":"1","intChangedById":"1","strStartDate":"2011-03-02 00:00:00","_objCategoryList":null,"_objAttachmentList":null,"strEndDate":"2011-03-03 23:59:00","intActive":"1","strCategories":"VWO","blnSortingChanged":false,"blnDeleteFromList":false,"blnAddToList":false,"blnItemChanged":false,"blnDeleteItem":false,"blnIsNewItem":false},{"intId":"106","objStartDate":{},"objEndDate":{},"strTitle":"testtesttest","strContent":"","intMarkChange":"1","intAllDayEvent":"1","strCalendarCategory":null,"objCreated":{},"objUpdated":{},"intCreatedById":"1","intChangedById":"1","strStartDate":"2010-12-08 00:00:00","_objCategoryList":null,"_objAttachmentList":null,"strEndDate":"2011-06-08 00:00:00","intActive":"0","strCategories":null,"blnSortingChanged":false,"blnDeleteFromList":false,"blnAddToList":false,"blnItemChanged":false,"blnDeleteItem":false,"blnIsNewItem":false}]},
"PageBlocks":{"arrItems":[{"intUrlId":"30","intPageBlockId":null,"strType":"News","strHtml":"<p>\r\n\tTestje 2<\/p>\r\n","strSearch":"\r\n\tTestje 2\r\n","strLanguageCode":"nl","blnSortingChanged":false,"blnDeleteFromList":false,"blnAddToList":false,"blnItemChanged":false,"blnDeleteItem":false,"blnIsNewItem":false}]}}}
*/
