/*
	Market Bits
*/
var PC_market = {
	appearing: {},
	titleheight: 19,
	init: function() {
		var marketbits = $('marketbits').select('div.bit');
		marketbits.each(function(bit) {
			Event.observe(bit, 'mouseover', function() { PC_market.hover(1,parseInt(this.id.replace(/^marketbit_/,''))); });
			Event.observe(bit, 'mouseout', function() { PC_market.hover(0,parseInt(this.id.replace(/^marketbit_/,''))); });
		});
	},
	hover: function(state,id) {
		if (this.appearing[id]) {
			this.appearing[id].cancel();
			this.appearing[id] = false;
		}
		switch(state) {
			case 1:
				this.appearing[id] = Effect.BlindDown($('marketbit_'+id).select('.title')[0], { 
					duration: 0.1,
					transition: Effect.Transitions.sinoidal,
					afterFinish: function() { $('marketbit_'+id).select('.title')[0].style.height = PC_market.titleheight+'px'; } 
				});
			break;
			case 0:
				$('marketbit_'+id).select('.title')[0].hide();
				$('marketbit_'+id).select('.title')[0].style.height = this.titleheight+'px';
			break;
		}
	}
};
document.observe("dom:loaded", function() {
	PC_market.init();
});


/*
	Index Search Box
*/
var PC_indexsearchbox = {

	searchdomain: '',
	searchfile: '',
	searchkeys: {},
	streetmapfile: '',
	streetmapkey: '',

	timeout: 0,
	slideup: false,
	focussed: false,
	select_focussed: false,
	
	init: function(searchfile,searchdomain,searchkeys,streetmapfile,streetmapkey) {
		this.searchdomain = searchdomain;
		this.searchfile = searchfile;
		this.searchkeys = searchkeys;
		this.streetmapfile = streetmapfile;
		this.streetmapkey = streetmapkey;
		
		Event.observe($('searchboxq'), 'keypress', function(event) { 
			if(event.keyCode == Event.KEY_RETURN) {
				PC_indexsearchbox.search();
			}
		});
	},
	search: function() {
		var searchtype = $('searchbox_type').value;
		var q = $('searchboxq').value;
		var cref = $('searchboxcref').value;
		if (!cref) { alert('no cref'); }
		if (!q) {
			new Effect.Highlight($('searchboxq'), { startcolor: '#ff0000', endcolor: '#ffffff' });
			$('searchboxq').focus();
			return false;
		}
		switch(searchtype) {
			case "full":
			case "news":
			case "agenda":
			case "blogs":
			case "market":
				// google search
				if (!this.searchfile) {
					alert('The search file has not been initiated.');return false;
				}
				
				switch (searchtype) {
					default:
						if (searchtype && searchtype != 'undefined' && this.searchkeys[searchtype] && this.searchkeys[searchtype] != 'undefined') {
							q = q + ' inurl:'+this.searchkeys[searchtype];
						}
					break;
				}
				var searchform = new Element('form', { id: 'exec_searchform', action:this.searchfile, method: 'get' });
				searchform.appendChild(new Element('input', { type: 'hidden', name: 'q', value: q } ));
				searchform.appendChild(new Element('input', { type: 'hidden', name: 'cref', value: cref } ));
				//searchform.appendChild(new Element('input', { type: 'hidden', name: 'cx', value: 'partner-pub-7147251639831640:gl9tkr-xqyb' } ));
				searchform.appendChild(new Element('input', { type: 'hidden', name: 'cof', value: 'FORID:10' } ));
				searchform.appendChild(new Element('input', { type: 'hidden', name: 'ie', value: 'UTF-8' } ));
				//searchform.appendChild(new Element('input', { type: 'hidden', name: 'domains', value: this.searchdomain } ));
				//searchform.appendChild(new Element('input', { type: 'hidden', name: 'sitesearch', value: this.searchdomain } ));
				searchform.appendChild(new Element('input', { type: 'submit', value: '&raquo;' } ));
				document.body.appendChild(searchform);
				setTimeout(function() { $('exec_searchform').submit(); },100);
			break;
			case "street":
				var searchform = new Element('form', { id: 'exec_searchform', action:this.streetmapfile, method: 'get' });
				searchform.appendChild(new Element('input', { type: 'hidden', name: this.streetmapkey, value: q } ));
				document.body.appendChild(searchform);
				setTimeout(function() { $('exec_searchform').submit(); },100);
			break;
		}
	}
};

/*
	Index Events
*/

var PC_indexevents = {
	eventslide: false,
	eventslideinterval: false,
	intervaltime: 3000,
	init: function() {
	
		var eventslides = $('eventsoverview').select('div.eventslide');
		var controls = $('eventsoverview').select('div.controls')[0];
		if ($('eventdots')) {
			var dotsn = parseInt($('eventdots').innerHTML);
			$('eventdots').update('');
			for (i=0;i<dotsn;i++) {
				$('eventdots').appendChild(new Element('a', { 'class': 'dot', 'title': $(eventslides[i]).select('h3 a')[0].innerHTML }).update('&#9679;'));
			}
			$('eventdots').show();

			// eventslide
			this.eventslide = new Carousel($('eventsoverview').down('.middle'), $('eventsoverview').select('.slide'), $('eventsoverview').select('.controls a.carousel-control'), {duration: 0.7, circular: true, wheel: true }, $('eventsoverview').select('.controls a.dot'));

			var dots = $('eventsoverview').select('div.controls a.dot');
			var n = 0;
			dots.each(function(dot) {
				n++;
				dot.rel = n;
				Event.observe(dot, 'click', function() {
					var n = parseInt(this.rel);
					var slides = $$('#eventsoverview div.slide');
					if (slides[(n-1)]) {
						var oldopts = {
							duration: PC_indexevents.eventslide.options.duration,
							transition: PC_indexevents.eventslide.options.transition
						};
						PC_indexevents.eventslide.options.duration = 0.7;
						PC_indexevents.eventslide.options.effect = 'scroll'; // sinoidal
						PC_indexevents.eventslide.options.transition = 'spring';
						PC_indexevents.eventslide.moveTo(slides[(n-1)]);
						PC_indexevents.eventslide.options.effect = 'scroll';
						PC_indexevents.eventslide.options.duration = oldopts.duration;
						PC_indexevents.eventslide.options.transition = oldopts.transition;
						PC_indexevents.eventslide.scrolling = false;
					} else {
						return false;
					}
				});
			});
			dots[0].className = 'dot selected';
			
			Event.observe($('eventsoverview'), 'mouseover', function() { 
				PC_indexevents.slideinterval.stop();
			});
			Event.observe($('eventsoverview'), 'mouseout', function() { 
				PC_indexevents.slideinterval.start();
			});
			this.slideinterval.start();
		}
	},
	slideinterval: {
		start: function() {
			PC_indexevents.eventslideinterval = setInterval(function() { PC_indexevents.eventslide.next(); },PC_indexevents.intervaltime);
		},
		stop: function() {
			if (PC_indexevents.eventslideinterval) {
				clearInterval(PC_indexevents.eventslideinterval);
				PC_indexevents.eventslideinterval = false;
			}
		}
	},
	eventshover: function(state) {
		switch(state) {
			case 1:
				alert(1);
			break;
			case 0:
				alert(0);
			break;
		}
	}
};
document.observe("dom:loaded", function() {
	PC_indexevents.init();
});
