var cookie = function(name, path ) {
	this.path = path || '/';
	this.name = name || 'site';
};

cookie.prototype = {
	set:function(value, expires ) {
		if(!expires )
			expires = null;

		var d = new Date();
		d.setDate(d.getDate() + expires);
		document.cookie = this.name + '=' + escape(value) + ((expires == null) ? '' : '; expires=' + d.toGMTString()) + '; path=' + this.path + '; ';
	}
	,get:function(unescape ) {
		if(document.cookie.length > 0 ) {
			var start = document.cookie.indexOf(this.name + '=');
			if(start != -1 ) {
				start = start + this.name.length + 1;
				var end = document.cookie.indexOf(';', start);
				if(end == -1 )
					end = document.cookie.length;

				if(unescape )
					return unescape(document.cookie.substring(start, end));
				else
					return document.cookie.substring(start, end);
			}
		}
		return null;
	}
	,expire:function() {
		this.set('', 0);
	}
};

var searchMaskInitValue = '';

var animationRunning = false;

$(document).ready(function() {

	//var s = '';
	//for (var k in document.body){
	//	s += k + '=' + document.body[k] + '<br/>';
	//}

	//var o = document.createElement('div');
	//o.innerHTML = s;
	//document.body.appendChild(o);

	//alert(s);

	$('.mailsafe').each(function(x, el){
		$(el).text($(el).text().replace(/ at /,'@').replace(/ /g,'.'));
	});

	/*-------------------------------- Non Compliant Shadow Assingnment ---------------------------------------*/

	//disable link on wildfire logo
	var a = $('#main-menu > ul > li > a')[0];
	a.removeAttribute('href');
	a.style.cursor = 'default';
	a.onclick = function(){
		return false;
	};

	if ($.browser.msie && parseInt(jQuery.browser.version) > 6){

		//var last = $('#main-menu > ul > li > a').last();

		var size = $('#main-menu > ul > li > a').size();

		$('#main-menu > ul > li > a').each(function(x, el){
			if (x > 0 && x < size - 1)
				$(el).attr('title', $(el).text());
		});

		$('#main-menu > ul').each(function(x, el){
			$(el).addClass('shadow');
		});
	}

	$(document).mousemove(function(e){
		var x = e.clientX;
		var y = e.clientY;

		var midX = $(document).width()/2;
		var midY = window.innerHeight/2;

		var xShadow = Math.floor(((midX - x)/midX) * 10);
		var yShadow = Math.floor(((midY - y)/midY) * 10);

		$('#introbar h1').each(function(x, el){
			$(el).css('text-shadow', '#a0a0a0 '+xShadow+'px '+yShadow+'px 2px');
		});
	});

	$('#search-mask input.fresh').focus(function() {
		if (this.className.contains('fresh')){
			searchMaskInitValue = this.value;
			this.value = '';
			this.className = 'text';
		}
	});

	$('#search-mask input').blur(function() {
		if(this.value.trim() == '' ) {
			this.value = searchMaskInitValue;
			this.clasName = 'text fresh';
		}
	});

	$('#main-menu ul ul li.last a').each(function() {
		$(this).append('<div class="left-shim">&nbsp;</div><div class="right-shim">&nbsp;</div>');
	});

	$('#newsheadlines li').each(function(x, li){
		var a = $(li).children('a')[0];

		$(li).click(function(){
			document.location = a.href;
		});
		
	});

	var knockouts = {
		'home-page-knockout1':0
		,'home-page-knockout2':247
		,'home-page-knockout3':493
		,'home-page-knockout4':740
	};

	$('.home-page-knockout').each(function(x, el){
		$(el).addClass('home-page-knockout-max');

		el.id = 'home-page-knockout'+(x+1);

		$(el).click(function(){

			if (animationRunning){
				//put('-- running');
				return;
			}
			animationRunning = true;
			initAnimation(1, el.id);
		});
	});

	function initAnimation(x, activeId){
		if (x == 5){
			growH(activeId);
			return;
		}

		var id = 'home-page-knockout'+x;

		if (id == activeId){
			growV($('#'+id)[0]);
			initAnimation(x+1, activeId);
		}else
			shrinkV(x, activeId, $('#'+id)[0]);
	}

	function shrinkV(x, c, el){

		var id = el.id;

		if ($(el).hasClass('home-page-knockout-min')){
			initAnimation(x+1, c);

		}else{
			if ($(el).hasClass('home-page-knockout-exp')){
				var l = knockouts[el.id];
				$('#'+id+' p').fadeOut('1000');
				$('#'+id+' img').fadeOut('500');
				$('#'+id+' .left').animate({height:'45px'},'250','linear',function(){
					$(el).animate({top:'+=160px',width:240+'px',left:l+'px'},250,'swing',function(){
						$(el).removeClass('home-page-knockout-exp');
						$(el).removeClass('home-page-knockout-max');
						$(el).addClass('home-page-knockout-min');
						initAnimation(x+1, c);
					});
				});
			}else{
				$('#'+id+' .left').animate({height:'45px'},'250','linear',function(){

				});

				$(el).animate({top:'+=160px'},250,'swing',function(){
					$(el).removeClass('home-page-knockout-max');
					$(el).addClass('home-page-knockout-min');
					initAnimation(x+1, c);
				});
			}
		}
	}

	function growV(el){
		var id = el.id;

		if ($(el).hasClass('home-page-knockout-max')) {
			return;
		}

		$('#'+id+' img').fadeIn('500');
		$(el).animate({top:0});

		$('#'+id+' .left').animate({height:'200px'},'250','swing',function(){
			$(el).removeClass('home-page-knockout-min');
			$(el).addClass('home-page-knockout-max');
		});
	}

	function growH(id){
		var el = $('#'+id);
		el.animate({
			width:'980px'
			,left:0
		},1000,'swing',function(){
			$(el).addClass('home-page-knockout-exp');
			$('#'+id+' p').fadeIn('1000');
			animationRunning = false;
		});
	}

	function expandPane(el){
		var id = el.id;
		var i = parseInt(id.replace(/^home-page-knockout/,''));
		var w = 100/i;
		var x = (i-1) * 25;
		movePane(el, x, x/4 * -1, 25, 75/4, 'left');
	}

	function movePane(el, left, moveBy, width, growBy, direction){
		keyFrame(el, 0, left, moveBy, width, growBy, function(){
			if (direction == 'left'){
				$(el).addClass('home-page-knockout-max');
				$(el).css('width','100%');
				$('#'+el.id+' p').fadeIn('2000');
			}else{
				$(el).removeClass('home-page-knockout-max');
				$(el).css('width','25%');

				//console.log(el);
			}
		},direction);
	}

	function keyFrame(el, index, left, moveBy, width, growBy, finalFrame, dir){

		//if (dir == 'right')
		//	console.log('>> x/i: ' + dir + ' - ' + left + ':' + moveBy);

		$(el).animate({left:left+'%',width:width+'%'},200,'linear',function(){
			left += moveBy;
			width += growBy;			

			index++;

			if (index < 5){
				keyFrame(el, index, left, moveBy, width, growBy, finalFrame, dir);
			}else{
				finalFrame.call(this);
			}
		});
	}

/*	var uiForm = $('#sparkys-lab-form');

	if(uiForm.length == 1 ) {

		uiForm.submit(function(){
			$('#sparkys-lab-form .w-url').val(getQueryString(false));
		});

		$('input.w-color').attachColorPicker([
			'FFFFFF','FFFFCC','FFFF99','FFFF66','FFFF33','FFFF00','FFCCFF',
			'FFCCCC','FFCC99','FFCC66','FFCC33','FFCC00','FF99FF','FF99CC',
			'FF9999','FF9966','FF9933','FF9900','FF66FF','FF66CC','FF6699',
			'FF6666','FF6633','FF6600','FF33FF','FF33CC','FF3399','FF3366',
			'FF3333','FF3300','FF00FF','FF00CC','FF0099','FF0066','FF0033',
			'FF0000','CCFFFF','CCFFCC','CCFF99','CCFF66','CCFF33','CCFF00',
			'CCCCFF','CCCCCC','CCCC99','CCCC66','CCCC33','CCCC00','CC99FF',
			'CC99CC','CC9999','CC9966','CC9933','CC9900','CC66FF','CC66CC',
			'CC6699','CC6666','CC6633','CC6600','CC33FF','CC33CC','CC3399',
			'CC3366','CC3333','CC3300','CC00FF','CC00CC','CC0099','CC0066',
			'CC0033','CC0000','99FFFF','99FFCC','99FF99','99FF66','99FF33',
			'99FF00','99CCFF','99CCCC','99CC99','99CC66','99CC33','99CC00',
			'9999FF','9999CC','999999','999966','999933','999900','9966FF',
			'9966CC','996699','996666','996633','996600','9933FF','9933CC',
			'993399','993366','993333','993300','9900FF','9900CC','990099',
			'990066','990033','990000','66FFFF','66FFCC','66FF99','66FF66',
			'66FF33','66FF00','66CCFF','66CCCC','66CC99','66CC66','66CC33',
			'66CC00','6699FF','6699CC','669999','669966','669933','669900',
			'6666FF','6666CC','666699','666666','666633','666600','6633FF',
			'6633CC','663399','663366','663333','663300','6600FF','6600CC',
			'660099','660066','660033','660000','33FFFF','33FFCC','33FF99',
			'33FF66','33FF33','33FF00','33CCFF','33CCCC','33CC99','33CC66',
			'33CC33','33CC00','3399FF','3399CC','339999','339966','339933',
			'339900','3366FF','3366CC','336699','336666','336633','336600',
			'3333FF','3333CC','333399','333366','333333','333300','3300FF',
			'3300CC','330099','330066','330033','330000','00FFFF','00FFCC',
			'00FF99','00FF66','00FF33','00FF00','00CCFF','00CCCC','00CC99',
			'00CC66','00CC33','00CC00','0099FF','0099CC','009999','009966',
			'009933','009900','0066FF','0066CC','006699','006666','006633',
			'006600','0033FF','0033CC','003399','003366','003333','003300',
			'0000FF','0000CC','000099','000066','000033','D31145','000000',
			'111111','222222','333333','303030','444444','555555','666666',
			'777777','888888','808080','999999','AAAAAA','BBBBBB','CCCCCC',
			'DDDDDD','EEEEEE',''
		]);

		$('input.w-color').change(function(el ) {
			if(this.value.indexOf('#') == 0 )
				this.value = this.value.substring(1).toLowerCase();

			updatePreview();
		});

		$('#sparkys-lab-reset').click(function() {
			if(confirm('Are you sure you want to reset your experiment?') ) {
				new cookie('sparkyslab').expire();
				document.location = document.location.toString().replace(/\?(.*)$/, '');
			}
		});

		$('#sparkys-lab-form select').each(function(){
			$('#'+this.id).selectToUISlider({
				//width: 400
				labels:8
				,sliderOptions: {
					change:function(e, ui) {
						updatePreview();
					}
				}
			}).hide();

			$(this).parent().css('height','100px');
		});

		$('#sparkys-lab-form select').change(function() {
			updatePreview();
		});

		$('#sparkys-lab-form input[type="radio"]').change(function() {
			updatePreview();
		});

		$('#sparkys-lab-preview').click(function() {
			updatePreview();
		});

		var formValues = new cookie('sparkyslab').get();
		if(formValues ) {
			formValues = formValues.replace(/(^\"|\"$)/g, '').replace(/\\"/g, "'");
			try {
				var formObject = eval('x = ' + formValues);
				var form = document.forms['sparkys-lab-form'];
				for(var i = 0; i < form.elements.length; i++ ) {
					var el = form.elements[i];

					if(!el.name.startsWith('\\.') && (el.type == 'text' || el.type == 'radio' || el.options) ) {
						var v = formObject[el.name] || '';
						if(el.type == 'radio' ) {
							if(el.value == v )
								el.checked = true;
						}
						else
							el.value = v;
					}
				}
			}
			catch(E ) {
				alert(E);
			}
		}
	}*/
});

function buildVideoWall(){
	if ($('.video-menu').length > 0){
		var w = $('.video-menu').width();
		var thumbWidth = 130;
		var perRow = Math.floor(w / thumbWidth);
		$('.video-menu').width(perRow *thumbWidth);
		var vidCounter = 1;
		var thumbs = $('.video-thumb');
		thumbs.each(function(x, el) {
			var html = $(el).html();
			$(el).html('<table cellpadding="0" cellspacing="0"><tr><td><div><span>' + html + '</span></div></td></tr></table>');
			if (vidCounter % perRow == 0 && x < thumbs.length - 1){
				var copy = $(el).clone().addClass('half-brick');
				$(copy).removeAttr('href');
				if (vidCounter % (perRow * 2) != 0){
					$(el).after(copy);
				}else{
					$(el).before(copy.addClass('half-brick-plus'));
					vidCounter++;
				}
			}
			vidCounter++;
		});
	}
}

function getQueryString(preview){
	var form = document.forms['sparkys-lab-form'];
	var qs = preview ? '?preview=true&attention=true' : '';

	for(var i = 0; i < form.elements.length; i++ ) {
		var el = form.elements[i];
		var k = el.name;
		if(k && !k.startsWith('\\.') && k != 'url' && k != 'name' && k != 'email') {
			var v = el.value;
			if(el.type == 'radio' && !el.checked )
				v = null;

			if(v != null )
				qs += (qs == '' ? '?' : '&') + k + "=" + el.value;
		}
	}
	return qs;
}

function updatePreview() {
	var links = document.getElementsByTagName("link");
	for(var i = 0; i < links.length; i++ ) {
		var href = links[i].getAttribute('href').replace(/\?(.*)$/, '');
		if(href.endsWith('layout.css.jsp') ) {
			links[i].setAttribute('href', href + getQueryString(true));
			break;
		}
	}
}

if(typeof Ext == 'object' ) {
	Ext.onReady(function() {

		var panes = Ext.DomQuery.select('*[@class*="ext-tab"]');

		if(panes.length == 0 )
			return;

		var component = panes[0].parentNode;
		var container = Ext.DomQuery.select('.tabpanel', component);

		if(container )
			container = container[0];

		var tabPanel = Ext.DomHelper.insertFirst(container, {
			tag:'div'
			,cls:'tab-panel'
		}, true);

		var tabButtons = Ext.DomHelper.append(tabPanel, {
			tag:'div'
			,cls:'tab-buttons-panel'
		});

		var list = Ext.DomHelper.append(tabButtons, {
			tag:'ul'
		});

		for(var i = 0; i < panes.length; i++ ) {
			var pane = panes[i];

			var headings = Ext.DomQuery.select('legend', pane);

			var legend = '';

			if(headings.length > 0 )
				legend = headings[0].innerHTML;

			var tab = Ext.DomHelper.append(list, {
				tag:'li'
				,cls: 'tab-lhs ' + (i == 0 ? 'tab tab-on' : 'tab')
				,id:'tab' + (i + 1)
			}, true);

			var tmp = Ext.DomHelper.append(tab, {
				tag:'span'
				,cls:'tab-rhs'
			}, true);

			Ext.DomHelper.append(tmp, {
				tag:'span'
				,cls:'tab-body'
				,html:legend
			});

			var contentWrapper = Ext.DomHelper.append(tabPanel, {
				tag:'div'
				,id:'content' + (i + 1)
				,cls: i == 0 ? 'tab-content tab-content-show' : 'tab-content'
			}, true);

			var border = Ext.DomHelper.append(contentWrapper, {
				tag:'div'
				,cls:'tab-content-panel-border'
			}, true);

			var content = Ext.DomHelper.append(border, {
				tag:'div'
				,cls:'tab-content-panel'
			}, true);

			content.insertFirst(pane);
		}

		//init tabs
		Ext.select('.tab-buttons-panel').on('click', function(e, t ) {
			var i = t.id.slice(-1);
			Ext.get('tab' + i).radioClass('tab-on');
			Ext.get('content' + i).radioClass('tab-content-show');
		}, null, {delegate: 'li'});
	});
}