// JavaScript Document
window.addEvent('domready',function() {
// add smooth scrolling for internal links
	new SmoothScroll({ duration:700 }, window);
// process 'external' links	
	var t = $$("a[rel=external]");
	t.each(function(lnk, nr){
		lnk.set({'target':'_blank', 'class':'external'});									
	});	
// replace filter	
	var container = $('filter_container');
	container.set('html', '');
// place loading img
	var loader = new Element('img', {'id':'deal_loader', 'src':'/ajax_loader.gif'}).setStyle('visibility', 'hidden');
	loader.inject($('deals').getElement('h1'));
// addevent (on deals click, show spotlight deals)
	var lnk = $('lnk_deals').addEvent('click', function(){this.getNext().setStyle('display', 'none'); get_deals(-1);});
	var cats = $('deal_cats').getElements('a');
	cats.each(function(cat){			
		var target = cat.get('href').match("\=[0-9]{1,2}\#");		
		if(target!==null){			
			var id = target[0].substr(1, target[0].length-2);
			cat.addEvent('click', function(e){this.getParent().getParent().setStyle('display','none'); e.stop(); get_deals(id);});
		}
	});
// 'sectormenu'
	if($chk($('cat_menu'))){
		var cats = $('cat_menu').getElements('a');
		cats.each(function(cat){			
			var target = cat.get('href').match("\=[0-9]{1,2}\#");		
			if(target!==null){			
				var id = target[0].substr(1, target[0].length-2);
				cat.addEvent('click', function(e){e.stop(); get_deals(id);});
			}
		});
	}
// menu click
	var subitems = $$('#menu .subcat');
	subitems.each(function(el){				   
		el.addEvent('mouseenter', function(e){e.stop(); this.getElement('ul').setStyle('display','block');});				   
		el.addEvent('mouseleave', function(e){e.stop(); this.getElement('ul').setStyle('display','none');});				   
	});
// spotlight deals effect
	var deals = $('deal_target').getElements("div[class$=spotlight]");
	deals.each(function(el){				
				el.addEvents({
					'mouseenter':function(){this.addClass('over');},
					'mouseleave':function(){this.removeClass('over');},
					'click':function(){
						var info = el.get('id').split("_");
						get_deals(info[1], info[2]);						
					}
				});
	});
// make spotlight deals height equal
	var dim = [];
	var offset = [];
	var offset_sorted = [];
	var wr = $('deal_target').getElements('div[class=wrapper]');
	wr.each(function(el, i){
		dim[i] = el.getSize().y;		
		var action = el.getElement('span[class=action]');
		offset[i] = action.getCoordinates($('deal_target')).top;
		offset_sorted[i] = action.getCoordinates($('deal_target')).top;
	});
	offset_sorted.sort(sort_number);

	dim.sort();
	part2_bottom = 0;
	wr.each(function(el, i){
		el.getElement('span[class=action]').setStyle('margin-top', (offset_sorted[wr.length-1]-offset[i]+15) + 'px');
		part2 = el.getElement('div[class=ds_part2]');
		if (part2.getCoordinates().bottom > part2_bottom) {
			part2_bottom = part2.getCoordinates().bottom;
		}
	});

	wr.each(function(el, i) {
		el.setStyle('height', part2_bottom - el.getCoordinates().top);
	});	
	
// override action all_deal_lnk
	if($chk($('lnk_all_deals'))){
		$('lnk_all_deals').getElement('a').addEvent('click', function(e){e.stop(); get_deals(0);});
	}
});


function get_deals(cat, deal){
	var myFx = new Fx.Scroll(window).toElement('deals');
	$('deal_loader').setStyle('visibility','visible');
	var myFx = new Fx.Tween($('deal_target'));
	/*myFx.start('opacity', 1, 0).chain(
			function(){*/
				var request = new Request.HTML({
					url:'/index.htm?action=ajax_get_deals&industry=' + cat + '&deal=' + deal,
					onSuccess: function(tree, els, html, js){									
						$('deal_target').set('html', html);
						
						var deals = $('deal_target').getElements("div[class$=spotlight]");
						deals.each(function(el){
							el.addEvents({
								'mouseenter':function(){this.addClass('over');},
								'mouseleave':function(){this.removeClass('over');},
								'click':function(){
									var info = el.get('id').split("_");
									get_deals(info[1], info[2]);						
								}
							});																			
						});
						
						// 'sectormenu'
						if($chk($('cat_menu'))){
							var cats = $('cat_menu').getElements('a');
							cats.each(function(cat){			
								var target = cat.get('href').match("\=[0-9]{1,2}\#");		
								if(target!==null){			
									var id = target[0].substr(1, target[0].length-2);
									cat.addEvent('click', function(e){e.stop(); get_deals(id);});
								}
							});
						}
						if (cat < 0) {
							// make spotlight deals height equal
							var dim = [];
							var offset = [];
							var offset_sorted = [];
							var wr = $('deal_target').getElements('div[class=wrapper]');
							wr.each(function(el, i){
								dim[i] = el.getSize().y;		
								var action = el.getElement('span[class=action]');
								offset[i] = action.getCoordinates($('deal_target')).top;
								offset_sorted[i] = action.getCoordinates($('deal_target')).top;
							});
							offset_sorted.sort(sort_number);

							dim.sort();
							part2_bottom = 0;
							wr.each(function(el, i){
								el.getElement('span[class=action]').setStyle('margin-top', (offset_sorted[wr.length-1]-offset[i]+15) + 'px');
								part2 = el.getElement('div[class=ds_part2]');
								if (part2.getCoordinates().bottom > part2_bottom) {
									part2_bottom = part2.getCoordinates().bottom;
								}
							});

							wr.each(function(el, i) {
								el.setStyle('height', part2_bottom - el.getCoordinates().top);
							});
						}
						
						// override action all_deal_lnk
						if($chk($('lnk_all_deals'))){
							$('lnk_all_deals').getElement('a').addEvent('click', function(e){e.stop(); get_deals(0);});
						}
						
						//$('deal_target').fade('in');
						$('deal_loader').setStyle('visibility','hidden');
						// process 'external' links	
							var t = $$("a[rel=external]");
							t.each(function(lnk, nr){
								lnk.set({'target':'_blank'});									
							});	
						/*if($chk(deal)){ // scroll to deal if specified (detail)
							var d = $('deal' + deal).getPosition();
							var myElement = $(document.body);
							var myFx = new Fx.Scroll(myElement).start(0, d.y-35);

						}*/
					}
				}).send();	
			/*}
	);*/

}

function sort_number(a,b){
	return a - b;
}
