/* ============= Javascript file ============= */	
function frameBuster(){
  if(($$('#content div.bloghead')[0])||($$('#topleftcol div.blogCarHead')[0])) return; // css rules in order to test if this is a blog page - index, post or cat
  if ( top != self ){
    top.location.href = unescape(window.location.pathname);
  }
}

function newSearch(e) {
	var myEvent = new Event(e);	
	var searchInput= $('searchinput');
	searchInput.value="";
	searchInput.focus();
	myEvent.stop();
}

function toggleStuff(e) {
	var myEvent = new Event(e);
	myEvent.stop();
	var target = (!myEvent.target.href) ? myEvent.target.parentNode : myEvent.target;
	var divToShow = target.href.split('#')[1];
	var divToShow = $(divToShow);
    if(divToShow.getStyle('display')=='none') {
		$(divToShow).setStyle('display', 'block');
	} else {
    	divToShow.setStyle('display', 'none');
    }
}

function toggleMain(e) {
    // toggling function - using the href attribute of the source of the event and switch class from "none" to "selected"
    var myEvent = new Event(e);
    var myTarget = myEvent.target;
    var divToShow = $(myTarget.href.split("#")[1]);
    // get the closest parent 'div' tag
    var elemParent = myTarget.getParent();
    while(elemParent.getTag() != 'ul') {
    	elemParent = $(elemParent).getParent();
    }
    if(divToShow.getStyle('display')=='none') {
    	// hide every divs
    	var everyDivs = $$(elemParent.getElementsByTagName('a')).getProperty('href'); // #nameoftheid
    	$each(everyDivs, function(singleDiv){
       		divToHide = singleDiv.split('#')[1];
       		$(divToHide).setStyle('display', 'none');
    	});
    	// remove class to the links
    	$each($(elemParent).getElementsByTagName('a'), function(singleLink) {
    		singleLink.removeClass('selected');
	});
    	//show a single div and add 'selected' class to the clicked link
    	divToShow.setStyle('display', 'block');
    	myTarget.addClass('selected');
    }    
    myEvent.stop();
}

function smoothScroll(e) {
	var myEvent = new Event(e);
	var target = (!myEvent.target.href) ? myEvent.target.parentNode : myEvent.target;
	var divToScrollTo = target.href.split('#')[1];
	new Fx.Scroll(window).toElement(divToScrollTo);
	myEvent.stop();
}

function printThis(e) {
	var myEvent = new Event(e);
	// stop the event
	window.print();
}


function toggleConnectForm(e) {
    var myEvent = new Event(e);
    // stop the event
    myEvent.stop();
    // toggle the form
    connectFormSlider.toggle();
} 

function jumpToUrl(e) { 
	var cururl = $('cnetcategories').getValue();
	var myEvent = new Event(e);
	myEvent.stop();
	if(cururl) {
		//alert('Ceci est un test ne vous affolez pas : ' + cururl);
		window.location.href=cururl;
		//window.location.assign(cururl);
	}
} 

function selectText(e) {
	var event = new Event(e);
	var target = event.target;
	target.select();
}

function initSmoothScroll() {
	var smooth_links = $$('a.smooth'); 
	$each(smooth_links, function(smooth_link) {smooth_link.addEvent('click', smoothScroll);});
}

function initFooter() {
	//vars
	var navLinks = $$('#bottomnav a');
	var navNames = ["cnetfr","sitemap","networks"];
	// add behaviour
	$each(navLinks, function(myNavLink) {myNavLink.addEvent('click', toggleMain);});
	// hide panes	
	$each(navNames, function(myNav){ $(myNav).setStyle('display','none')});
	// display default
	$('cnetfr').setStyle('display', 'block');
}

function initImagesAccordion() {
	if(!$('images')) return; // test 'cause we need that on the hp only
	var imagesTabs = $$('#images p.navmost a');
	var imagesStretchers = $$('#images ul');
	var imagesAccordion = new Accordion(imagesTabs, imagesStretchers, {duration:500, opacity: 0, transition: Fx.Transitions.sineInOut,
		onActive: function(targetElem){
	       	targetElem.addClass('selected');
	    },
		onBackground: function(elem){
	       	elem.removeClass('selected');
	    }
	});	
	/* prevent default behavior */
	$each(imagesTabs, function(imageTab){
		imageTab.addEvent('click', function(event){
			event = new Event(event);
			event.preventDefault();
		});  
	})
}

function initServicesAccordion() {
	if(!$('services')) return; // test 'cause we need that on the hp only
	var servicesTabs = $$('#services p.navmost a');
	var servicesStretchers = $$('#services ul');
	var servicesAccordion = new Accordion(servicesTabs, servicesStretchers, {duration:500, opacity: 0, transition: Fx.Transitions.sineInOut,
		onActive: function(targetElem){
		   	targetElem.addClass('selected');
		},
		onBackground: function(elem){
		   	elem.removeClass('selected');
		}
	});	
	/* prevent default behavior */
	$each(servicesTabs, function(serviceTab){
		serviceTab.addEvent('click', function(event){
			event = new Event(event);
			event.preventDefault();
		});  
	})
}

function initReactionsAccordion() {
	if(!$('reactions')) return; // test 'cause we need that on the hp only
	var reactionsTabs = $$('#reactions p.navmost a');
	var reactionsStretchers = $$('#reactions ul');
	var reactionsAccordion = new Accordion(reactionsTabs, reactionsStretchers, {duration:600, opacity: 0, transition: Fx.Transitions.sineInOut,
		onActive: function(targetElem){
	       	targetElem.addClass('selected');
	    },
		onBackground: function(elem){
	       	elem.removeClass('selected');
	    }
	});
	/* prevent default behavior */
	$each(reactionsTabs, function(reactionTab){
		reactionTab.addEvent('click', function(event){
			event = new Event(event);
			event.preventDefault();
		});  
	})
}

function initInfosAccordion() {
	if(!$('infos')) return; // test 'cause we need that on the hp only
	var infosTabs = $$('#infos p.navmost a');
	var infosStretchers = $$('#infos ul');
	var infosAccordion = new Accordion(infosTabs, infosStretchers, {duration:600, opacity: 0, transition: Fx.Transitions.sineInOut, 
		onActive: function(targetElem){
        	targetElem.addClass('selected');
      	},
		onBackground: function(elem){
        	elem.removeClass('selected');
      	}
  	});
	/* prevent default behavior */
	$each(infosTabs, function(infoTab){
		infoTab.addEvent('click', function(event){
			event = new Event(event);
			event.preventDefault();
		});  
	})
}

function initSendForm() {
	if(!$('sendtofriend')) return;
	var myButton = $('btsend');
	myButton.addEvent('click', toggleStuff)
}

function initShare() {
	// services in news section
	if(!$('postlist')) return;
	var myButton = $('btpost');
	myButton.addEvent('click', toggleStuff)
	// initServices
	if ($$('#postlist .facebook a')) $$('#postlist .facebook a')[0].addEvent('click', facebook);
	if ($$('#postlist .digg a')) $$('#postlist .digg a')[0].addEvent('click', digg);
	if ($$('#postlist .delicious a')) $$('#postlist .delicious a')[0].addEvent('click', delicious);
	if ($$('#postlist .scoopeo a')) $$('#postlist .scoopeo a')[0].addEvent('click', scoopeo);
}

function initPrintThis() {
	if(!$('btprint')) return;
	var buttonPrint = $('btprint');
	buttonPrint.addEvent('click', printThis);
}

function initJumpMenu() {
	if(!$('cnetcategories')) return;
	$$('#productfinder button').addEvent('click',jumpToUrl)
}

function initAislesIe() {
// aisles buttons IE compatibility function
  if(!$('aislesbuttons')) return;
  if (window.ie) {
    var subNavItems = $$('#aislesbuttons div');
    $each(subNavItems, function(subNavItem) {subNavItem.addEvent('mouseover', function(){subNavItem.addClass('over')});});
    $each(subNavItems, function(subNavItem) {subNavItem.addEvent('mouseout', function(){subNavItem.removeClass('over')});});	
  }
}

function startList() {
// dropdown menu IE compatibility function
	if (window.ie) {
		var subNavItems = $$("#subnav li");
		//alert(subNavItems);
		$each(subNavItems, function(subNavItem) {subNavItem.addEvent('mouseover', function(){subNavItem.addClass('over')});});
		$each(subNavItems, function(subNavItem) {subNavItem.addEvent('mouseout', function(){subNavItem.removeClass('over')});});	
	}
}

function initSharegadget() {
	if(!$('gpostlist')) return;
	// initServices
	if ($$('#gpostlist a.facebook')) $$('#gpostlist a.facebook')[0].addEvent('click', facebook);
}

function initShareVideoInput() {
	// only on video stories
	if(!$('video_player_permalink_text')) return;
	$('video_player_permalink_text').addEvent('click', selectText);
	$('video_player_embed_code_text').addEvent('click', selectText);
}

function initNewSearch() {
	if(!$$('p.helper a')[0]) return;
	var myLink = $$('p.helper a')[0];
	myLink.addEvent('click', newSearch);
}

var load_method = (window.ie ? 'load' : 'domready'); // ie fix

window.addEvent(load_method, frameBuster); 
window.addEvent(load_method, initNewSearch);
window.addEvent(load_method, initShareVideoInput);
window.addEvent(load_method, initShare);
window.addEvent(load_method, initSharegadget);
window.addEvent(load_method, initJumpMenu);
window.addEvent(load_method, initPrintThis);
window.addEvent(load_method, initSendForm);
window.addEvent(load_method, initServicesAccordion);
window.addEvent(load_method, initReactionsAccordion);
window.addEvent(load_method, initImagesAccordion);
window.addEvent(load_method, initInfosAccordion);
//window.addEvent(load_method, initFooter);     // FGOUG genere une erreur JScript
window.addEvent(load_method, initSmoothScroll);
window.addEvent(load_method, initAislesIe);
window.addEvent(load_method, startList);
