// JavaScript Document

var searchType="video"; //web,image,news,video
var siteSearch="www.acs4u.com";
var pageLine="";
var siteLine="";
var sourceLine="";
var whatPage=0;
var pageOn=0;
var perPage=10
var newyt_url="";
var yt_url="";
var appID='AC0016880438F93D2634BCCF9640B8FD23B17FA6';
var isBolded="no";
var boldLine="";
var searchAmount=0;
$(document).ready(function(){
	 
	 //Focus the search textbox
$("#searchBox").focus();

//user clicks on the search button
 $('#searchButton').click(function(event){
	 pageOn=0;
	 whatPage=0;
 	startSearch();

  });
  
  //user presses the enter key
  $('#searchBox').keypress(function(e) {
	  
        if(e.which == 13) {
		pageOn=0;
		whatPage=0;
           startSearch();
        }
    });
	
  //user clicks on the previous button
  $('#searchPrev').click(function(event){
 	if(pageOn>0){
		newPage= parseInt(pageOn)-1;
		pageOn=newPage;
		whatPage=newPage*10+(1-0);
		startSearch();
	}

  });
  
  //user clicks on the next button
  $('#searchNext').click(function(event){
	  var totalPages=Math.round(searchAmount/perPage);
	  
	  if(pageOn<totalPages){
		newPage= parseInt(pageOn)+1;
		
		pageOn=newPage;
		whatPage=parseInt(newPage*10)+1;
		
		startSearch();
	}
	  
	  
 	

  });
  
  function setSite(){
	  alert('hello');
  }
  var arrow = $('<span>',{className:'arrow'}).appendTo('ul#searchTopics');
  
  $('ul#searchTopics li').click(function(){
	        var el = $(this);
	 
	        if(el.hasClass('active')){
	            // The icon is already active, exit
              return false;
	        }
	 			
	        el.siblings().removeClass('active');
	        el.addClass('active');
	 
	        // Move the arrow below this icon
	        arrow.stop().animate({
	            left        : el.position().left,
	            marginLeft  : (el.width()/2)-4
	        });
	 
	        // Set the search type
	        searchType = el.attr('data-searchType');
	        $('#more').fadeOut();
	    });
 	$('li.searchWeb').click();
	
	
	

});

function searchCallBack(){
	
	$('#searchWrapper').show('medium'); 	
};

function startSearch(){
	$('#searchNav').hide();
	//$("#searchResult").slideUp('fast');
	var search_input = $('#searchBox').val();
	var keyword= encodeURIComponent(search_input);

	if(siteSearch !=""){
		siteLine='site:'+siteSearch+' ';
	};
	
	if (searchType=="web"){
		sourceLine="Web";
		pageLine='&web.count='+perPage+'&web.offset='+whatPage;
	};
	
	if (searchType=="image"){
		sourceLine="Image";
		pageLine='&image.count='+perPage+'&image.offset='+whatPage;
	};
	
	if (searchType=="news"){
		sourceLine="News";
		pageLine='&news.count='+perPage+'&news.offset='+whatPage;
	};
	
	if (searchType=="video"){
		sourceLine="Video";
		pageLine='&video.count='+perPage+'&video.offset='+whatPage;
	};
	
	if(isBolded=="yes"){
		boldLine="&Options=EnableHighlighting";
	}
 	
	yt_url='http://api.search.live.net/json.aspx?JsonType=callback&JsonCallback=?&Appid='+appID+'&query='+siteLine+keyword+'&sources='+sourceLine+boldLine+pageLine;//'+siteLine+keyword+'&sources='+sourceLine+pageLine; 
	//$('#people').html(yt_url);
	$.ajax({
			type: "GET",
			url: yt_url,
			dataType:"jsonp",
			success: function(response){
				
			$("#searchResult").html('');
				
			//SOURE TYPE WEB
			if(searchType =='web'){
				
				if(response.SearchResponse.Web.Results.length){
					
					searchAmount=response.SearchResponse.Web.Total;
 					$.each(response.SearchResponse.Web.Results, function(i,data){
						var title=data.Title;
						var dis=data.Description;
						var url=data.Url;
						var final="<div class='webresult'><div class='title'><a href='"+url+"' target='_blank'>"+title+"</a></div><div class='desc'>"+dis+"</div><div class='url'>"+url+"</div></div>";
						if(isBolded=="yes"){
							
							makeBold=ReplaceHighlightingCharacters(
                				final,
                				"<strong>",
                				"</strong>");
								final=makeBold;

						};
						$("#searchResult").append(final);
						searchCallBack();

 					});
					
					if(searchAmount > perPage){
						
						$('#searchNav').slideDown('fast');	
						
					}else{
						$('#searchNav').hide();
					}
					
				}else{
					$("#searchResult").html("<div id='no'>No results</div>");
				}
			}
			
			////SOURCE TYPE IMAGE
			if(searchType=='image'){
				
				if(response.SearchResponse.Image.Results.length){
					
					searchAmount=response.SearchResponse.Image.Total;
 					$.each(response.SearchResponse.Image.Results, function(i,data){
						var title=data.Title;
						var mediaUrl=data.MediaUrl
						var thumbNail = data.Thumbnail.Url;
						var url=data.Url;
						var imageWidth=data.Width;
						var imageHeight=data.Height;

						var final="<div class='imageresult'><div class='title'>"+title+"</div><div class='searchThumbNail'><a href='"+mediaUrl+"' target='_blank'><img src='"+thumbNail+"'/></a><br />Dimensions: "+imageWidth+"x"+imageHeight+"</div><div class='url'>"+url+"</div></div>";
						
						if(isBolded=="yes"){
							makeBold=ReplaceHighlightingCharacters(
                				final,
                				"<strong>",
                				"</strong>");
								final=makeBold;
								
						};
						$("#searchResult").append(final);
						searchCallBack();

 					});
					if(searchAmount > perPage){
						
						$('#searchNav').slideDown('fast');	
						
					}else{
						$('#searchNav').hide();
					}
					
				}else{
					$("#searchResult").html("<div id='no'>No results</div>");
				}
			}
			
			//SOURCE TYPE NEWS
			if(searchType=='news'){
				
				if(response.SearchResponse.News.Results.length){
					
					searchAmount=response.SearchResponse.News.Total;
					
 					$.each(response.SearchResponse.News.Results, function(i,data){
						
						var title=data.Title;
						var snippet=data.Snippet;
						var url=data.Url;
						var source =data.Source
						
						
						//add date and 
						var final="<div class='webresult'><div class='title'><a href='"+url+"' target='_blank'>"+title+"</a></div><div class='desc'>"+snippet+"</div><div class='url'>"+url+"</div></div>";
						
							if(isBolded=="yes"){
							makeBold=ReplaceHighlightingCharacters(
                				final,
                				"<strong>",
                				"</strong>");
								final=makeBold;
							
						};
						
						$("#searchResult").append(final);
						searchCallBack();

 					});
				
					if(searchAmount > perPage){
						
						$('#searchNav').slideDown('fast');	
						
					}else{
						$('#searchNav').hide();
					}
					
				}else{
					//$("#searchResult").html("<div id='no'>No results</div>");
				}
			}
//			
			//SOURCE TYPE VIDEO
			if(searchType=='video'){
				
				
				if(response.SearchResponse.Video.Results.length){
					
					searchAmount=response.SearchResponse.Video.Total;
					
 					$.each(response.SearchResponse.Video.Results, function(i,data){
					var final="Title: " 
                	+ data.Title 
                	+ "<br />"
                  
                	+ "SourceTitle: " 
                	+ data.SourceTitle 
                	+ "<br />"
                
                	+ "RunTime: " 
                	+ data.RunTime 
                	+ "<br />"
                
                	+ "<a href=\""
                	+ data.PlayUrl
                	+ "\">"
                	+ "PlayUrl"
                	+ "</a><br />"
                
                	+ "<a href=\""
                	+ data.ClickThroughPageUrl
                	+ "\">"
                	+ "ClickThroughPageUrl"
                	+ "</a><br />"
                
                	+ "Static Thumbnail:"
                	+ "<br />"
                	+ "<a href=\""
                	+ data.PlayUrl
                	+ "\">"
                	+ "<img src=\""
                	+ data.StaticThumbnail.Url
                	+ "\"></a>"
						//var title=data.Title;
//						var snippet=data.Snippet;
//						var url=data.Url;
//						var source =data.Source
						
						
						//add date and 
						//var final="<div class='webresult'><div class='title'><a href='"+url+"' target='_blank'>"+title+"</a></div><div class='desc'>"+snippet+"</div><div class='url'>"+url+"</div></div>";
						if(isBolded=="yes"){
							makeBold=ReplaceHighlightingCharacters(
                				final,
                				"<strong>",
                				"</strong>");
								final=makeBold;
								
						};
					$("#searchResult").append(final);
					searchCallBack();

					$("#searchResult").slideDown();	
 				});
					
					if(searchAmount > perPage){
						
						$('#searchNav').slideDown('slow');	
						
					}else{
						$('#searchNav').hide();
					}
					
				}else{
					$("#searchResult").html("<div id='no'>No results</div>");
				}
			}
			

				if(searchAmount>perPage){
					$('#searchNav').show();	
					var totalPages=Math.ceil(searchAmount/perPage);
					
					
					$('#searchPages').html('Showing Page: ' +(pageOn+1)+' of '+totalPages);
					
					
					
				}else{
					$('#searchNav').hide();
				}
				
			
			}
 
	});	
}

function ReplaceHighlightingCharacters(text, beginStr, endStr)
    {
        // Replace all occurrences of U+E000 (begin highlighting) with
        // beginStr. Replace all occurrences of U+E001 (end highlighting)
        // with endStr.
        var regexBegin = new RegExp("\uE000", "g");
        var regexEnd = new RegExp("\uE001", "g");
              
        return text.replace(regexBegin, beginStr).replace(regexEnd, endStr);
    }


