var ScoopSearch = Class.create({
	searchForm: null,
	
	initialize: function(form)
	{
		//define html form to be observed
		this.searchForm = form; 

		//set focus on input
		$('q').focus();
	
		//observe tab clicks
		$$('ul#categories li a').each(function(tab){
			tab.observe('click', this.switchTab.bindAsEventListener(this));		
		}.bind(this));

                //observe form submit
		Event.observe(this.searchForm, 'submit', this.search.bindAsEventListener(this));

		/* //observe preview buttons
		$$('a.preview').each(function(prev){
			prev.observe('click', this.togglePreview.bindAsEventListener(this));		
		}.bind(this));
		
		//observe show/hide details
		if($('details_link'))
			Event.observe('details_link', 'click', this.toggleDetails.bindAsEventListener(this));
	
		//observe filter box
		$$('div#filters li.filter_item span.item_bar span.item_title').each(function(filter){
			filter.observe('click', this.toggleFilterItem.bindAsEventListener(this));
		}.bind(this)); 
		*/ 	
	
		this.startAutoSuggest($$('ul#categories li.selected')[0].id);
                
			
	},
        
        
       	search: function(event)
	{
		//stop the form from submitting
		if(typeof(event) == 'object')
			Event.stop(event);
		
		//perform tab-specific action		
		var terms = $('q').value;
		var tab = $$('ul#categories li.selected')[0].id;
		if(terms != "")
                {
                switch(tab){
			case 'tab-web':
				window.location = 'http://scoopcrawler.com/search/'+terms;
				break;
			case 'tab-images':
				window.location = 'http://scoopcrawler.com/index.php?source=2&sm=Search&req=search&term='+terms;
				break;
			case 'tab-videos':
				if(document.getElementById("results") ==null)
                                {
	                        window.location = 'http://scoopcrawler.com/index.php?source=3&req=Videos&term='+terms;
                                }
                                else
                                div_id='results';searchVids(terms);return(false);
				break;
			case 'tab-news':
				window.location = 'http://scoopcrawler.com/news.php';
				break;
                        case 'tab-blogs':
				window.location = 'http://scoopcrawler.com/index.php?source=5&sm=Search&req=search&term='+terms;
				break;
                        case 'tab-shop':
				window.location = 'http://scoopcrawler.com/index.php?source=6&sm=Search&req=search&term='+terms;
				break;
                        case 'tab-b2b':
				window.location = 'http://scoopcrawler.com/index.php?source=7&req=Torrents&search='+terms;
				break;
		       }
             }else
                {
		  $(this.searchForm).submit();
                }
       	},

	startAutoSuggest: function(tab)
	{
		if(tab == 'tab-web' || tab == 'tab-images' || tab == 'tab-videos' || tab == 'tab-news' || tab == 'tab-blogs' || tab == 'tab-shop' || tab == 'tab-b2b'){		
			        $('q')._ac = new Ajax.Autocompleter("q", "search_suggestions", "/js/rpc.php",
                                {paramName: 'name',
				frequency: .1,
				autoSelectFirst: false,
				afterUpdateElement: function(text, li){
					if(li.id)
						$('q').value = li.id;
						var term = $('q').value;
						$('q').value = term.replace(/^\s+|\s+$/g,"");
					this.search();
				}.bind(this)
			});
		}			
	},
	
	stopAutoSuggest: function(event)
	{
		if ($('q')._ac) {
			$('q').stopObserving('blur').stopObserving('keydown');
			$('q')._ac = false;
		}		
	},
	
	selectedTabEquals: function(tab)
	{
		if($$('ul#categories li.selected')[0].id == tab)
			return true;
		else
			return false;	
	},
	
	switchTab: function(event)
	{
		Event.stop(event);
		$$('li.selected').each(function(tabSelected){
			tabSelected.removeClassName('selected');
		});
		var tab = event.element().up();	
		
                tab.addClassName('selected');
                if($('q').value !="")
                this.search();
                if(tab.id=='tab-videos')
                window.location = 'http://scoopcrawler.com/videos.php';
                if($('q').value =="" && tab.id=='tab-news')
                window.location = 'http://scoopcrawler.com/news.php';
                if($('q').value =="" && tab.id=='tab-b2b')
                window.location = 'http://scoopcrawler.com/torrents.php';
		
	},
	
	toggleDetails: function(event)
	{
		Event.stop(event);
		var show = ($('details_link').innerHTML == 'Show Details') ? 'block' : 'none';
		$('details_link').innerHTML = ($('details_link').innerHTML == 'Show Details') ? 'Hide Details' : 'Show Details';
		$$('div.detail').each(function(result){
			result.style.display = show;
		});
	},

	togglePreview: function(event)
	{
		Event.stop(event);
		var prevEle = event.element();
		var id = prevEle.id.match(/\d+$/)[0];
		
		if(!$('iframe_' + id).innerHTML){	//nothing in div
			var url = $$('tr#result_' + id + ' a.result_link')[0].href;
			var iframe = new Element('iframe', 
				{ 'class': 'preview', 'src': url, 'id': 'the_iframe_'+id, 'height': '100', 'border': '0' });		
			Element.insert($('iframe_' + id), iframe);
			//$('iframe_' + id).toggle();
			Effect.toggle('iframe_' + id, 'slide',{duration: .25});
			prevEle.removeClassName('preview');
			prevEle.addClassName('preview_remove');
			iframe.observe('load', function(){
				iframe.style.display = 'block';
			});
		}else if($('iframe_' + id).visible()){ //already visible
			$('iframe_' + id).toggle();
			//Effect.toggle('iframe_' + id, 'slide',{duration: .25});
			prevEle.removeClassName('preview_remove');
			prevEle.addClassName('preview');				
		}else{ //iframe exists, has been hidden
			$('iframe_' + id).toggle();
			//Effect.toggle('iframe_' + id, 'slide',{duration: .25});
			prevEle.removeClassName('preview');
			prevEle.addClassName('preview_remove');			
		}		
	},
	
	toggleFilterItem: function(event)
	{
			var itemBar = event.element().up();
			itemBar.toggleClassName('item_open');
						
			var content = itemBar.next();
			Effect.toggle(content, 'slide',{duration: .25});
			
			if(itemBar.hasClassName('item_last')){
				itemBar.removeClassName('item_last');
			}else{
			  var li = itemBar.up().next();
				if(li == undefined){		//last li element
			 	 itemBar.addClassName('item_last');
				} 
			}	
	}
});

/* araghuva:01/09 more menu */
var timeout         = 500;
var closetimer	    = 0;
var ddmenuitem      = 0;

// open hidden layer
function mopen(id)
{	
	// cancel close timer
	mcancelclosetime();

	// close old layer
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';


	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';

}
// close showed layer
function mclose()
{
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';

}
// go close timer
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}
// cancel close timer
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);

		closetimer = null;
	}
}
// close layer when click-out
document.onclick = mclose;

/* araghuva:10/08 - added for collaping div */
function toggleDiv(divid){
if(document.getElementById(divid).style.display == 'none'){
Effect.BlindDown(divid, { duration: 1.0 })
}else{
Effect.BlindUp(divid, { duration: 1.0 })
}
}

/* araghuva:12/08 - added for collaping images on homepage */
function showElement(idElement){
document.getElementById(idElement).style.display = 'block';
}

function hideElement(idElement){
document.getElementById(idElement).style.display = 'none';
}

/* araghuva:12/08 - added for website preview On/Off feature */
function setPreview(cookieName,cookieValue) { 
 document.cookie = cookieName + "=" +escape( cookieValue);
 window.location.reload(); 
 }

function getCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function setPreviewButton()
{
  if(getCookie('preview')=='tru')
    {
     document.getElementById('previewOnBtn').style.textDecoration = "underline";
     document.getElementById('previewOffBtn').style.textDecoration = "none";
    }
  else
   {
     document.getElementById('previewOnBtn').style.textDecoration = "none";
     document.getElementById('previewOffBtn').style.textDecoration = "underline";
   }		
}

function unsetPreview(cookieName) {
	createCookie(cookieName,"",-1);
}
