var exampleFx = null;
var fxTarget = null;
dbug.enable();
var scroller = null;


window.addEvent('domready', function() {
	setCNETAssetBaseHref("/library/javascript/assets");
	try {
		if(window.ie6) window.disableImageCache();
	}catch(e){}
	try {
		if($('fxTarget')) {
			fxTargetClone = $('fxTarget').clone();
			fxTargetClone.setProperty('id', 'fxTargetClone');
		}
	} catch(e) {dbug.log(e)}

	//dbug.time("links");
	$$('a').each(function(lnk) {
		if(lnk.href.indexOf("c18") >= 0 || lnk.href.indexOf("cnet.cnwk") >= 0){
			var href = lnk.href;
			lnk.addEvent('click', function() {
				if(confirm('this link will only work for employees of cnet.com that are within the cnet firewall, click "OK" to continue'))
					window.location.href = href;
			});
			lnk.href = "javascript: void(0);";
		}
	});
	//dbug.timeEnd("links");
	var searchInput = $('searchInput') || $('qsearch__in');
	if(searchInput) {
		if(searchInput.value==''){
			if(searchInput.id == 'searchInput') searchInput.value="search";
			else searchInput.value="search the wiki";
		}
		searchInput.addEvent('focus', function() {
			if(this.value=='search' || this.value=='search the wiki')this.value='';
			this.setStyle('color', '#000');
		}).addEvent('blur', function(){
			this.setStyle('color', '#999');
		});
	}
	if($('emailSubscribe')){
		$('emailSubscribe').addEvent('focus', function() {
			if($('emailSubscribe').value=='your email') this.value='';
			this.setStyle('color', '#000');
		}).addEvent('blur', function(){
			this.setStyle('color', '#999');
		});	
	}
	
	//dbug.time("accordions");
		scroller = new Fx.Scroll(document.body, {
			transition: Fx.Transitions.backOut
		});
		makeAccordions();
	//dbug.timeEnd("accordions");

	//dbug.time("tabs");
		try {
			if($('tabSet')) {
				var myTabs = new tabSwapper({
					selectedClass: 'on',
					deselectedClass: 'off',
					tabSelector: '#tabSet li',
					clickSelector: '#tabSet li a',
					sectionSelector: '#panelSet div.panel',
					cookieName: 'testingTabs',
					smooth: true
				});
			}
		} catch(e){
			dbug.log(e);
		}
	//dbug.timeEnd("tabs");

	//dbug.time("code");
	$$('div.code').each(function(el, idx){
		el.setStyle('max-height', '300px');
		el.addEvent('mouseover', function() {
			this.makeResizable({
				handle: this.getElement('img.resizeMe')
			});
		});
		
		try {
			if(el.hasClass("exec")){
				el.getElement('img.executeCodeImg').addEvent('click',function(){
					try {
						var source = el.getElement('.rawScript').innerHTML.replaceAll('<br/>','').replaceAll('<br>','').replaceAll('<p>','').replaceAll('</p>','').replaceAll('&lt;', '<').replaceAll('&gt;', '>');
						dbug.log(source);
						var delayVal = 0;
						if(source.test('fxTarget')) {
							delayVal = grabFXTarget(this); 
						}
						(function(){
							msg = eval(source);
							if(msg) dbug.log(msg);
							else dbug.log('nothing returned');
						}).delay(delayVal);
					} catch(e){
						dbug.log('error executing: %s', e);
					}
				});
			}
		} catch(e){dbug.log('error setting up executor: %s', e);}
	});
	//dbug.timeEnd("code");


		try {	
			$('fxTarget').makeDraggable();
			$('fxTarget').makeDraggable();
		} catch(e){
		}
});

function grabFXTarget(positionToElement){
	try {
	var thisChain = new Chain();
	var thisTarget = fxTargetClone.clone();
			thisTarget.setStyles({
				'top':($('fxTarget').getTop()>0)?$('fxTarget').getTop():200+'px',
				'visibility':'visible'
			});
	var returnval = 70;
	try {
		if($('fxTarget').getStyle('display')=='none' || ($('fxTarget').getTop() < window.getScrollTop() 
				 || ($('fxTarget').getTop()+$('fxTarget').getStyle('height').toInt()) > (window.getScrollTop()+window.getHeight()))) {
				returnval = 1500;
		}
	} catch(e){returnval = 1500}
	
	if(returnval > 70) {
		(function(){
			thisTarget.setStyles({
				'top':$('fxTarget').getTop()+'px',
				'left': $('fxTarget').offsetLeft+'px'
			});
			if ($('fxTarget').getStyle('visibility') != 'hidden') {
				$('fxTarget').replaceWith(thisTarget)
				thisTarget.setProperty('id','fxTarget');
				thisTarget.makeDraggable();
			}
		 }).delay(100);
		(function(){$('fxTarget').setStyle('visibility','visible')}).delay(210);
		(function(){
			var winBottom = window.getScrollTop()+window.getHeight();
			var fxBottom = $('fxTarget').getTop()+($('fxTarget').getStyle('height').toInt());
			var scrollFrom = window.getScrollTop()-200;
			if (fxBottom > winBottom) scrollFrom = winBottom + 200;
			var targetEffects = $('fxTarget').effects({duration: 600, transition: Fx.Transitions.backOut})
			var scrollTo = positionToElement.getTop()-15;
			if (scrollTo < window.getScrollTop()) scrollTo = window.getScrollTop() +30;
			targetEffects.custom({'top':[scrollFrom,scrollTo]});
		}).delay(270);
	} else {
			thisTarget.setStyles({
				'display':'block',
				'visiblity':'visible',
				'top':$('fxTarget').getTop()+'px',
				'left': $('fxTarget').offsetLeft+'px'
			});
		$('fxTarget').replaceWith(thisTarget.setProperty('id','fxTarget'));
	}
	}catch(e){dbug.log(e)}
	return returnval;
};

function makeAccordions(debug){
	if(document.body.innerHTML.test('class="Accordion') || document.body.innerHTML.test('class=Accordion')) {
		$$('dl.Accordion').each(function(panel){
			var minHeight = 0;
			//dbug.time('stretcher measure');
			panel.getElements('dd.stretcher').each(function(stretcher){
				if (minHeight < stretcher.scrollHeight) minHeight = stretcher.scrollHeight;
			});
			panel.setStyle('height', minHeight+200+'px');
			//dbug.timeEnd('stretcher measure');

			new Accordion(panel.getElements('dt.stretchtoggle'), panel.getElements('dd.stretcher'), {
				onActive: function(){
					(function(){
						if(this.previousClick > 0) {
							var top = $(this.elements[this.previousClick]).getTop()-50;
							scroller.scrollTo(0, top);
						}
					}).bind(this).delay(500);
				}
			});	
		});
	}
}
