DW = {
	load:function(){
		//styling aids
		$('#nav ul').find('li:first').addClass('first')
			.end().find('li:last').addClass('last');
		$('#updates .col').find('dl:last').addClass('last');

		//input placeholders
		 $('input[placeholder], textarea[placeholder]').placeholder();
		
		//window resize
		$(window).resize(DW.resize).trigger('resize');
		
		//button hovers
		$('.social-icons a','#footer').hover(function(){ $(this).css('opacity',0.8); },function(){ $(this).css('opacity',1); });
		
		//submit buttons
		
		$('input[type=submit]').each(function(){
			var value = $(this).val();
			$(this).before(
				$('<a class="button" href="#">'+value+'</a>').click(function(){
					return false;
				})
			);
			$(this).remove();
		});
		
		$(".button").click(function(e){
			e.preventDefault();
			var form = $(this).closest('form').submit();	
		});
		
		//dont know what this is? because I wasn't commented
		$('.serviceimg img').wrap("<a style='border:none;' href='" + $('.servicedl').attr('href') + "'/>");
		$('.2columns').columnize({ columns: 2 });
		

		//newsletter
		$('#newsletter form').submit(function(){
		    var field = $('#newsletter input[type=text]');
		    if(!/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(field[2].value)){
		    	alert('Sorry, Invalid Email');
		    	field[2].select();
		    }else{
		        $(this).css('opacity',0.5);
		        $('#newsletter .button').html('Saving&hellip;');
		        $.post('/assets/newsletter.php',$('#newsletter form').serialize(),function(r){
		            if(r=='1'){
		                $('#newsletter form').html('<p><strong>Successfully Added!</strong></p>');
		            }else{
		            	alert('Sorry, Invalid Email');
		                $('#newsletter .button').html('Subscribe');
		                $('#newsletter form').css('opacity',1);
		            }
		        });
		    }
		    return false;
		});
		$('#newsletter form').append('<input type="submit" style="visibility:hidden;" />');
				
		
		//add in quote
		if(window.Quote){
			if(Quote[1]=='') Quote = DefaultQuote;
		
			$('#gutter').append(
				'<div id="quote"><blockquote>"'
				+ Quote[1] +'"</blockquote><a href="'
				+ Quote[2] +'"><strong>'
				+ Quote[0] +'</strong> View Profile</a></div>');
				
			$('#dw').css('background-image','url('+Quote[3]+')');
		}
		

		//quote position
		if($(document).height()>680+290){
		    $('#dw').css('background-position','0px 290px');
		    $('#quote').css('margin-top','450px');
		}else{
		    $('#quote').css('margin-top','200px');
		}


		//make external links open in new window
		/*
		$.expr[':'].external = function(obj){
		    return !obj.href.match(/^mailto\:/)
		    && (obj.hostname != location.hostname);
		};
		$('a:external').attr({'target':'_blank','rel':'external'});
		*/

		//print buttons
		$('a[href=#print]').click(function(){
			$('h1').html('<img src="assets/logo.png" />').css('text-indent','0px');
			window.print();
			return false;
		});
		
		
		//home page profile rollovers
		if($('#group').length){
		
			$('#group').parent().css({'overflow':'visible','height':'511px'});
			$('#group img').clone().appendTo('#group').css('opacity',0).attr('usemap','#group').css('z-index','5');
		
			$('#groupmap area').mouseover(function(){
				var name = $(this).attr('alt');
				var data = Staff[name];
				$('<div class="overbox" style="margin-left:[left]px;margin-top:[top]px;"><strong>[name]</strong><p>[info]</p></div>'
					.replace('[left]',data[0])
					.replace('[top]',data[1])
					.replace('[name]',data[2])
					.replace('[info]','<ul>'+data[3]+'</ul>')
				).prependTo('#group');//.animate({'margin-top':data[1]},'fast');
				$(this).attr('href',data[4])
			}).mouseout(function(){
				$('#group div').fadeOut('fast',function(){ $(this).remove(); });
			}).click(function(){
				var name = $(this).attr('alt');
				var data = Staff[name];
				$(this).attr('href',data[4])
				return true;
			});
		
		}
		
		
		//ajax functionality for news/articles categories
		$('#loader a').click(function(){
			var container = $(this).parent().parent().parent().next();
			var category = $(this).html();
			container.css('opacity',0.5);

			$('#loader a').removeClass('a');
			$(this).addClass('a');
			
			$.post('load/',{cat:(category=='All'?'':category)},function(r){
				container.html('<h3>'+(category=='Showing All'?'':category)+'</h3>'+
				(r.replace(/\s*/,'')==''?'<p>No items in this category</p>':r)).css('opacity',1);
			});

			return false;
		}).each(function(){
			if($(this).html()==window.location.hash.substr(1)) $(this).trigger('click');
		});
		if($('#loader').length && window.location.hash.substr(1)=='') $('#loader a:first').trigger('click');
		$('.loader-indirect-news a').each(function(){
			$(this).attr('href','/news/overview/#'+$(this).html());
		});
		$('.loader-indirect-articles a').each(function(){
			$(this).attr('href','/news/articles/#'+$(this).html());
		});
		
		
		//search box
		$('#footer .search a').click(function(){
			var v = $(this).prev().val();
			if(v==''||v==$(this).prev().attr('placeholder')){ $(this).prev().val('').focus();return false; }
			window.location = '/search/#'+v;
			return false;
		});
		$('#footer .search input:first').keypress(function(e){
			if((e.which||window.event.keyCode)==13/*enter key*/) $(this).next().trigger('click');
		});
		
		//navigation crop length to fit dropdown
		/*
		$('#nav ul a').each(function(){
		    if($(this).text().length>20){
		        $(this).html($(this).text().substr(0,20)+'&hellip;');
		    }
		});
		*/

	},
	resize:function(){
		if($(window).width()<1200){
			$('body').addClass('slim');
			if($('#body #nav').length<1) $('#header').after($('#nav').clone());
		}else{
			$('body').removeClass('slim');
		}
		
		$('#gutter').css('min-height',Math.max($(window).height(),$('#body').height()+$('#footer').height()));
		
	}

}

$(document).ready(DW.load);


//Load Custom Font
WebFontConfig = {google: { families: [ 'News Cycle' ] }};
(function() {
	var wf = document.createElement('script');
	wf.src = ('https:' == document.location.protocol ? 'https' : 'http') +'://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
	wf.type = 'text/javascript';
	wf.async = 'true';
	var s = document.getElementsByTagName('script')[0];
	s.parentNode.insertBefore(wf, s);
})();


//input placeholder
(function(b){function d(a){this.input=a;a.attr("type")=="password"&&this.handlePassword();b(a[0].form).submit(function(){if(a.hasClass("placeholder")&&a[0].value==a.attr("placeholder"))a[0].value=""})}d.prototype={show:function(a){if(this.input[0].value===""||a&&this.valueIsPlaceholder()){if(this.isPassword)try{this.input[0].setAttribute("type","text")}catch(b){this.input.before(this.fakePassword.show()).hide()}this.input.addClass("placeholder");this.input[0].value=this.input.attr("placeholder")}},
hide:function(){if(this.valueIsPlaceholder()&&this.input.hasClass("placeholder")&&(this.input.removeClass("placeholder"),this.input[0].value="",this.isPassword)){try{this.input[0].setAttribute("type","password")}catch(a){}this.input.show();this.input[0].focus()}},valueIsPlaceholder:function(){return this.input[0].value==this.input.attr("placeholder")},handlePassword:function(){var a=this.input;a.attr("realType","password");this.isPassword=!0;if(b.browser.msie&&a[0].outerHTML){var c=b(a[0].outerHTML.replace(/type=(['"])?password\1/gi,
"type=$1text$1"));this.fakePassword=c.val(a.attr("placeholder")).addClass("placeholder").focus(function(){a.trigger("focus");b(this).hide()});b(a[0].form).submit(function(){c.remove();a.show()})}}};var e=!!("placeholder"in document.createElement("input"));b.fn.placeholder=function(){return e?this:this.each(function(){var a=b(this),c=new d(a);c.show(!0);a.focus(function(){c.hide()});a.blur(function(){c.show(!1)});b.browser.msie&&(b(window).load(function(){a.val()&&a.removeClass("placeholder");c.show(!0)}),
a.focus(function(){if(this.value==""){var a=this.createTextRange();a.collapse(!0);a.moveStart("character",0);a.select()}}))})}})(jQuery);

//columniser


(function($){$.fn.columnize=function(options){var defaults={width:400,columns:false,buildOnce:false,overflow:false,doneFunc:function(){},target:false,ignoreImageLoading:true,float:"left",lastNeverTallest:false};var options=$.extend(defaults,options);return this.each(function(){var $inBox=options.target?$(options.target):$(this);var maxHeight=$(this).height();var $cache=$('<div></div>');var lastWidth=0;var columnizing=false;$cache.append($(this).children().clone(true));if(!options.ignoreImageLoading&&!options.target){if(!$inBox.data("imageLoaded")){$inBox.data("imageLoaded",true);if($(this).find("img").length>0){var func=function($inBox,$cache){return function(){if(!$inBox.data("firstImageLoaded")){$inBox.data("firstImageLoaded","true");$inBox.empty().append($cache.children().clone(true));$inBox.columnize(options);}}}($(this),$cache);$(this).find("img").one("load",func);$(this).find("img").one("abort",func);return;}}}
$inBox.empty();columnizeIt();if(!options.buildOnce){$(window).resize(function(){if(!options.buildOnce&&$.browser.msie){if($inBox.data("timeout")){clearTimeout($inBox.data("timeout"));}
$inBox.data("timeout",setTimeout(columnizeIt,200));}else if(!options.buildOnce){columnizeIt();}else{}});}
function columnize($putInHere,$pullOutHere,$parentColumn,height){while($parentColumn.height()<height&&$pullOutHere[0].childNodes.length){$putInHere.append($pullOutHere[0].childNodes[0]);}
if($putInHere[0].childNodes.length==0)return;var kids=$putInHere[0].childNodes;var lastKid=kids[kids.length-1];$putInHere[0].removeChild(lastKid);var $item=$(lastKid);if($item[0].nodeType==3){var oText=$item[0].nodeValue;var counter2=options.width/18;if(options.accuracy)
counter2=options.accuracy;var columnText;var latestTextNode=null;while($parentColumn.height()<height&&oText.length){if(oText.indexOf(' ',counter2)!='-1'){columnText=oText.substring(0,oText.indexOf(' ',counter2));}else{columnText=oText;}
latestTextNode=document.createTextNode(columnText);$putInHere.append(latestTextNode);if(oText.length>counter2){oText=oText.substring(oText.indexOf(' ',counter2));}else{oText="";}}
if($parentColumn.height()>=height&&latestTextNode!=null){$putInHere[0].removeChild(latestTextNode);oText=latestTextNode.nodeValue+oText;}
if(oText.length){$item[0].nodeValue=oText;}else{return false;}}
if($pullOutHere.children().length){$pullOutHere.prepend($item);}else{$pullOutHere.append($item);}
return $item[0].nodeType==3;}
function split($putInHere,$pullOutHere,$parentColumn,height){if($pullOutHere.children().length){$cloneMe=$pullOutHere.children(":first");$clone=$cloneMe.clone(true);if($clone.attr("nodeType")==1&&!$clone.hasClass("dontend")){$putInHere.append($clone);if($clone.is("img")&&$parentColumn.height()<height+20){$cloneMe.remove();}else if(!$cloneMe.hasClass("dontsplit")&&$parentColumn.height()<height+20){$cloneMe.remove();}else if($clone.is("img")||$cloneMe.hasClass("dontsplit")){$clone.remove();}else{$clone.empty();if(!columnize($clone,$cloneMe,$parentColumn,height)){if($cloneMe.children().length){split($clone,$cloneMe,$parentColumn,height);}}
if($clone.get(0).childNodes.length==0){$clone.remove();}}}}}
function singleColumnizeIt(){if($inBox.data("columnized")&&$inBox.children().length==1){return;}
$inBox.data("columnized",true);$inBox.data("columnizing",true);$inBox.empty();$inBox.append($("<div class='first last column' style='width:98%; padding: 3px; float: "+options.float+";'></div>"));$col=$inBox.children().eq($inBox.children().length-1);$destroyable=$cache.clone(true);if(options.overflow){targetHeight=options.overflow.height;columnize($col,$destroyable,$col,targetHeight);if(!$destroyable.children().find(":first-child").hasClass("dontend")){split($col,$destroyable,$col,targetHeight);}
while(checkDontEndColumn($col.children(":last").length&&$col.children(":last").get(0))){var $lastKid=$col.children(":last");$lastKid.remove();$destroyable.prepend($lastKid);}
var html="";var div=document.createElement('DIV');while($destroyable[0].childNodes.length>0){var kid=$destroyable[0].childNodes[0];for(var i=0;i<kid.attributes.length;i++){if(kid.attributes[i].nodeName.indexOf("jQuery")==0){kid.removeAttribute(kid.attributes[i].nodeName);}}
div.innerHTML="";div.appendChild($destroyable[0].childNodes[0]);html+=div.innerHTML;}
var overflow=$(options.overflow.id)[0];overflow.innerHTML=html;}else{$col.append($destroyable);}
$inBox.data("columnizing",false);if(options.overflow){options.overflow.doneFunc();}}
function checkDontEndColumn(dom){if(dom.nodeType!=1)return false;if($(dom).hasClass("dontend"))return true;if(dom.childNodes.length==0)return false;return checkDontEndColumn(dom.childNodes[dom.childNodes.length-1]);}
function columnizeIt(){if(lastWidth==$inBox.width())return;lastWidth=$inBox.width();var numCols=Math.round($inBox.width()/options.width);if(options.columns)numCols=options.columns;if(numCols<=1){return singleColumnizeIt();}
if($inBox.data("columnizing"))return;$inBox.data("columnized",true);$inBox.data("columnizing",true);$inBox.empty();$inBox.append($("<div style='width:"+(Math.round(100/numCols)-2)+"%; padding: 3px; float: "+options.float+";'></div>"));$col=$inBox.children(":last");$col.append($cache.clone());maxHeight=$col.height();$inBox.empty();var targetHeight=maxHeight/numCols;var firstTime=true;var maxLoops=3;var scrollHorizontally=false;if(options.overflow){maxLoops=1;targetHeight=options.overflow.height;}else if(options.height&&options.width){maxLoops=1;targetHeight=options.height;scrollHorizontally=true;}
for(var loopCount=0;loopCount<maxLoops;loopCount++){$inBox.empty();var $destroyable;try{$destroyable=$cache.clone(true);}catch(e){$destroyable=$cache.clone();}
$destroyable.css("visibility","hidden");for(var i=0;i<numCols;i++){var className=(i==0)?"first column":"column";var className=(i==numCols-1)?("last "+className):className;$inBox.append($("<div class='"+className+"' style='width:"+(Math.round(100/numCols)-2)+"%; float: "+options.float+";'></div>"));}
var i=0;while(i<numCols-(options.overflow?0:1)||scrollHorizontally&&$destroyable.children().length){if($inBox.children().length<=i){$inBox.append($("<div class='"+className+"' style='width:"+(Math.round(100/numCols)-2)+"%; float: "+options.float+";'></div>"));}
var $col=$inBox.children().eq(i);columnize($col,$destroyable,$col,targetHeight);if(!$destroyable.children().find(":first-child").hasClass("dontend")){split($col,$destroyable,$col,targetHeight);}else{}
while(checkDontEndColumn($col.children(":last").length&&$col.children(":last").get(0))){var $lastKid=$col.children(":last");$lastKid.remove();$destroyable.prepend($lastKid);}
i++;}
if(options.overflow&&!scrollHorizontally){var IE6=false;var IE7=(document.all)&&(navigator.appVersion.indexOf("MSIE 7.")!=-1);if(IE6||IE7){var html="";var div=document.createElement('DIV');while($destroyable[0].childNodes.length>0){var kid=$destroyable[0].childNodes[0];for(var i=0;i<kid.attributes.length;i++){if(kid.attributes[i].nodeName.indexOf("jQuery")==0){kid.removeAttribute(kid.attributes[i].nodeName);}}
div.innerHTML="";div.appendChild($destroyable[0].childNodes[0]);html+=div.innerHTML;}
var overflow=$(options.overflow.id)[0];overflow.innerHTML=html;}else{$(options.overflow.id).empty().append($destroyable.children().clone(true));}}else if(!scrollHorizontally){$col=$inBox.children().eq($inBox.children().length-1);while($destroyable.children().length)$col.append($destroyable.children(":first"));var afterH=$col.height();var diff=afterH-targetHeight;var totalH=0;var min=10000000;var max=0;var lastIsMax=false;$inBox.children().each(function($inBox){return function($item){var h=$inBox.children().eq($item).height();lastIsMax=false;totalH+=h;if(h>max){max=h;lastIsMax=true;}
if(h<min)min=h;}}($inBox));var avgH=totalH/numCols;if(options.lastNeverTallest&&lastIsMax){targetHeight=targetHeight+30;if(loopCount==maxLoops-1)maxLoops++;}else if(max-min>30){targetHeight=avgH+30;}else if(Math.abs(avgH-targetHeight)>20){targetHeight=avgH;}else{loopCount=maxLoops;}}else{$inBox.children().each(function(i){$col=$inBox.children().eq(i);$col.width(options.width+"px");if(i==0){$col.addClass("first");}else if(i==$inBox.children().length-1){$col.addClass("last");}else{$col.removeClass("first");$col.removeClass("last");}});$inBox.width($inBox.children().length*options.width+"px");}
$inBox.append($("<br style='clear:both;'>"));}
$inBox.find('.column').find(':first.removeiffirst').remove();$inBox.find('.column').find(':last.removeiflast').remove();$inBox.data("columnizing",false);if(options.overflow){options.overflow.doneFunc();}
options.doneFunc();}});};})(jQuery);
