/*	
	common.js	
	
	9/7/2010	-	Adjusted .showTooltip positioning.
	9/3/2010	-	Added ability to omit Close button in Overlay (for Flash piechart)
	8/27/2010	-	Modified InitCommonDropdowns to fix IE problem with phantom secondary menu bug.
	8/26/2010 	-	Modified InPlaceTextEdit functionality to accept "blankDestText" 
					sub param (as used in cart.js) to allow for blank text placeholder.
	Version 1.1 - 	line 198: Added show/hide for div.shoppingSupOption
					line 214:  Added functions for ShowShoppingSubOption and HideShoppingSubOption
	9/13/2010   -	Added hide/show code for "Type" dropdown hovering over "Laptops & Mobility" dropdown on Managed-Inventory page
					line 475 and 496 (IE6 detect on line 20)
					EXTERNAL REQUIREMENT - select id "refineQuoteTypeSelect" must exist
	
	Use OnReady(f:Function) to add functions that need to run on document load. 
*/

/*	================================================	Initialization */

$j = jQuery.noConflict();
var is_ie6 = ('ActiveXObject' in window && !('XMLHttpRequest' in window));

function OnReadyCommon(){
	// functions to call on document click - used to hide dropdowns and such
	document.onClickCallbacks = [];
	$j(document).click(DocumentClicked);
	// overlay
	InitOverlay();
	// quantity selector dropdowns
	InitQuantityDropdowns();
	// common dropdown menus (navigation)
	InitCommonDropdowns();
	// cart and acct team show/hide behavior
	InitCartAccountDropdown();
	// FIND button
	InitHeaderSearchForm();
	// like officialPartner scrollbox in the footer
	InitHorizontalScrollboxes();
	// Search box
	InitSearchBox();
	// info icons
	InitInfoFloater();
	// Init calendars
	InitCalendars();
	
	//$j('head').append('<link rel="stylesheet" media="all" href="/_includes/css/steve.css" />');
}

function InitInfoFloater(){
	$j('a.showTooltip').mouseenter(ShowInfoFloaterFor).mouseleave(HideInfoFloater);
}

function ShowInfoFloaterFor(e){
	if(document.infoFloater){
		document.infoFloater.detach();
		document.infoFloater = null;
	}
	//
	var $et = $j(e.target).closest('a.showTooltip');
	var off = $et.children().first().offset();
	var offy = $et.find('img').css('padding-top');
	var pi = offy.indexOf('px');
	if(pi) offy = Number(offy.substr(0, pi));
	else offy = 0;
	var inner = $j('span.tooltipContent').html();
	if($j.browser.msie) {
		off.left += 19;
	} else if($j.browser.webkit){
		off.left += 118;
	}
	document.infoFloater = $j('<div id="infoFloater" class="qtyNotes infoTooltip" style="visibility:hidden; display:block; position:absolute;"><div class="interior">'+inner+'</div></div>');
	$j('body').prepend(document.infoFloater);
	document.infoFloater.css('left', (off.left - document.infoFloater.outerWidth(true) - 24)+'px');
	document.infoFloater.css('top', (27 + off.top - document.infoFloater.outerHeight(true) + offy)+'px');
	document.infoFloater.css('visibility', 'visible');
}

function HideInfoFloater(){
	if(document.infoFloater){
		document.infoFloater.detach();
		document.infoFloater = null;
	}
}

function InitCalendars(){
	$j('.calendarInput').each(function(i, el){
		var $i = $j(el);
		$i.datepicker();
		$i.parents('.calendarGroup').find('.calendar').eq(0).click(function(e){
			e.preventDefault();
			$i.datepicker('show');
		});
	});
}

function InitSearchBox(){
	// Search box prompt
	var prmpt = 'Search keyword, pds or mfg part #';
	$j('#searchBox').focus(function() {
		if (this.value == prmpt) this.value = '';
	}).blur(function(){
		if (!this.value.length) this.value = prmpt;
	});
}

function InitOverlay(){
	$j('body').prepend('<div id="overlay"></div>');	
	//$j('div.commonOverlay a.closeLink').click(CloseOverlay);
	//$j('div.account-toolbar a.login').click(function(e){ ShowOverlay('/loginoverlay.asp', 450, 360); });
	$j('div.account-toolbar a.login').click(function(e){ ShowOverlay('/loginpopup.aspx', 450, 425); });
}

function InitQuantityDropdowns(){
	$j('input.quantity:text').each(function(i, el){
		var $tb = $j(el);
		var $a = $tb.siblings('a.drop').eq(0);
		if($a.length){
			$a.data($tb);
			$a.click(ShowQuantityDropdown);
		}
	});
}

function OnReady(f){
	if(document.onReadyArray) document.onReadyArray.push(f);
	else document.onReadyArray = [ f ];
}

$j(document).ready(function(){
	OnReadyCommon();
	// run initialization functions added with OnReady() function
	if(document.onReadyArray){
		var nr = document.onReadyArray.length;
		for(var i = 0; i < nr; i++){ document.onReadyArray[i](); }
	}
});


/*	================================================	In place text edit */

function InPlaceTextEdit(ainfo, finfo){
	var $cont = ainfo.cont;
	if(!$cont.length) return;
	$cont.data([ainfo, finfo]);
	$j(ainfo.trigger, $cont).data($cont);
	$j(finfo.cancel+', '+finfo.save, finfo.cont).data($cont);
	$j(ainfo.trigger, $cont).click(BeginInPlaceTextEdit);
	$j(finfo.cancel, finfo.cont).click(HideInPlaceTextEdit);
	$j(finfo.save, finfo.cont).click(SaveInPlaceTextEdit);
}

function BeginInPlaceTextEdit(e){
	var $cont = $j(e.target).data();
	var objs = $cont.hide().data();
	var $form = objs[1].cont.show();
	var popul = objs[0].populateWith;
	if(popul != undefined) {
		if(typeof(popul) == 'object'){
			$j('fieldset', $form).children('input[type!=hidden],textarea').each(function(i, el){
				$j(el).val($j(popul[i], objs[0].cont).text());
//				console.log('holla');
				if(!i) $j(el).focus().select();
			});
		} else {
			$j(objs[1].input, $form).val($j(popul, $cont).text()).focus().select();
		}
	} else{
		$j(objs[1].input, $form).val('');
	}
}

function HideInPlaceTextEdit(e){
	var $cont = $j(e.target).data();
	var objs = $cont.show().data();
	objs[1].cont.hide();
}

function SaveInPlaceTextEdit(e){
	var $cont = $j(e.target).data();
	var objs = $cont.show().data();
	var $form = objs[1].cont.hide();
	var dst;
	var once = objs[0].once;
	if(once){
		$j(objs[0].trigger, $cont).unbind();
	}
	dst = objs[0].dest;
	if(typeof(dst) == 'object'){
		$j('fieldset', $form).children('input[type!=hidden],textarea').each(function(i, el){
			var val = $j(el).val();
			if(!val.length && objs[0]['blankDestText']) val = objs[0]['blankDestText'];
			$j(dst[i], objs[0].cont).text(val);
		});
		//
	} else {
		var val = $j(objs[1].input, $form).val();
		if(!val.length && objs[0]['blankDestText']) val = objs[0]['blankDestText'];
		$j(dst, objs[0].cont).text(val);
		if(once) {
			$j(objs[0].trigger, $cont).replaceWith('<span>'+$j(objs[1].input, $form).val()+'</span>');
		}
	}

	// submit
	$form = $j('fieldset', $form);
	var formdata = [];
	$form.find('input, textarea').each(function(i, el){
		if(!el.disabled) formdata.push(el.name + '=' + $j(el).val());
	});
	$j.ajax({
		url: $form.find('input:disabled').val(),
		data: formdata.join('&')
	});
}

/*	================================================	Collapsible shopping options */

function InitShoppingOptions(){
	$j('div.shoppingOption > ul').hide();
	$j('div.shoppingOption > a.option').toggle(ShowShoppingOption, HideShoppingOption);
	$j('div.shoppingSubOption > ul').hide();
	$j('div.shoppingSubOption > a.option').toggle(ShowShoppingSubOption, HideShoppingSubOption);
}

function ShowShoppingOption(e){
	var $p = $j(e.target).parents('div.shoppingOption');
	var $ul = $j('> ul', $p);
	$j('a.option img', $p).attr('src', '/_media/images/common/results-minus.gif');
	$ul.slideDown(150);
}

function HideShoppingOption(e){
	var $p = $j(e.target).parents('div.shoppingOption');
	var $ul = $j('> ul', $p);
	$j('a.option img', $p).attr('src', '/_media/images/common/results-plus.gif');
	$ul.slideUp(150);
}

function ShowShoppingSubOption(e){
	var $p = $j(e.target).closest('div.shoppingSubOption');
	var $ul = $j('> ul', $p);
	$j('a.option span', $p).html('Hide '+$j('a.option', $p).attr('title'));
	$ul.slideDown(150);
}

function HideShoppingSubOption(e){
	var $p = $j(e.target).closest('div.shoppingSubOption');
	var $ul = $j('> ul', $p);
	$j('a.option span', $p).html('Show '+$j('a.option', $p).attr('title'));
	$ul.slideUp(150);
}

/*	================================================	Overlay functions */

function ShowOverlay(url, width, height, noCloseBtn){
  // some browsers will always show the overlay at the top, so if you are scrolled down a ways on the page, it is not visible (it is at the top of the page)
  try {
    if ((navigator.userAgent.toUpperCase().indexOf("ANDROID") >= 0) || 
        (navigator.userAgent.toUpperCase().indexOf("IPHONE") >= 0) ||
        (navigator.userAgent.toUpperCase().indexOf("IPAD") >= 0))
    {
      scroll(0,0);
    }
  }
  catch (ex) {}

	if(!width) width = 450; // default
	if(!height) height = 350; // default
	var overlay = $j('#overlay');
	var func = function(){ $j('#overlayiframe').get(0).src = url; overlay.css('visibility','visible'); };
	if(noCloseBtn){
    // NOTE: this iframe must specify a src otherwise if it is called from a page on HTTPS, it gives the Do you want to display the non secure items
		overlay.html('<div id="overlaymessage" style="width:' + (width + 4) + 'px; height:' + (height + 4) + 'px; padding: 0px; ">'
				 +'<div id="overlaymessagecontent" style="padding: 0px; margin: 2px; oveflow:hidden;"><iframe id="overlayiframe" frameborder="0" scrolling="no" width="'+width+'" height="'+height+'" marginwidth="0px" marginheight="0px" src="/blank.html" /></div><div style="clear:both;"></div>');
	} else {
    // NOTE: this iframe must specify a src otherwise if it is called from a page on HTTPS, it gives the Do you want to display the non secure items
		overlay.html('<div id="overlaymessage" style="width:' + width + 'px; height:' + height + 'px; ">'
				 +'<a href="javascript:void(0);" class="closeLink" onclick="CloseOverlay();">Close</a>'
				 +'<div id="overlaymessagecontent" style="width:100%; height:100%;"><iframe id="overlayiframe" frameborder="0" width="100%" height="100%" marginwidth="0px" marginheight="0px" src="/blank.html" /></div><div style="clear:both;"></div>');
	}
//	alert(overlay.html() );
	if ( $j.browser.msie && $j.browser.version.substr(0,1) == '6') {
	  	$j('#overlay').css('position', 'absolute');
		window.onresize = window.onscroll = function(){
			var iebody = (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
			var dsoctop = document.all ? iebody.scrollTop : pageYOffset;
			$j('#overlay').css('top', dsoctop + 'px').css('height', (document.documentElement.clientHeight - 1)+'px');
		};
		window.onresize();
	} else {
		$j('#overlay').css('position', 'fixed');
	}
	setTimeout(func, 200);
}

function ResizeOverlay(width, height){
	if(!width) width = -1; // default
	if(!height) height = -1; // default
  if(width <= 0) width = -1;
  if(height <= 0) height = -1;
  try
  {
    if (width > 0)
    {
      document.getElementById("overlaymessage").style.width = width;
    }
    if (height > 0)
    {
      document.getElementById("overlaymessage").style.height = height;
    }
  }
  catch (ex)
  {
  }
}

function CloseOverlay(){
	var overlay = document.getElementById('overlay');
	overlay.innerHTML = '';
	overlay.style.visibility = 'hidden';
	document.onkeydown = "";
	$j('body').css('position', 'static');
	if ( $j.browser.msie && $j.browser.version.substr(0,1) == '6') {
		window.onscroll = window.onresize = null;
	}
}

/*	================================================	Document click callbacks */

function AddDocumentClicked(f, cont){
	var nl = document.onClickCallbacks.length;
	var o;
	for(var i = 0; i < nl; i++){
		o = document.onClickCallbacks[i];
		if(o.f == f && (!cont || (cont && o.c == cont))){
			return;// ignore if already there
		}
	}
	document.onClickCallbacks.push({ f: f, c: (cont ? cont : 0)});
}

function RemoveDocumentClicked(f, cont){
	var nl = document.onClickCallbacks.length;
	var o;
	for(var i = 0; i < nl; i++){
		o = document.onClickCallbacks[i];
		if(o.f == f && (!cont || (cont && o.c == cont))){
			document.onClickCallbacks.splice(i, 1);
			return;
		}
	}
}

function DocumentClicked(e){
	var ncb = document.onClickCallbacks.length;
	var o;
	if(ncb){
		for(var i = 0; i < ncb; i++){
			o = document.onClickCallbacks[i];
			o.f(e, o.c);
		}
	}
}

/*	================================================	Quantity - style dropdowns */

function ShowQuantityDropdown(e){
	// ensure we clicked on the button
	var $a = $j(this);
	var $targ = $j(e.target);
	if(!($targ.is('a.drop') || $targ.parent().is('a.drop'))) return;
	var $tb = $a.data();
	// make dropdown html
	var dd = '<div class="selectQty" style="z-index:9999; position: absolute;"><ul>';
	var opts = $tb.attr('alt').split(',');
	for(var i = 0; i < opts.length; i++){
		dd += '<li><a href="javascript:void(0);" class="option">'+opts[i]+'</a></li>';
	}
	dd += '</ul></div>';
	// put it on top of the <a> that called us
	$a.css('position', 'relative');
	$a.prepend(dd);
	var $div = $j('div.selectQty', $a);
	$tb.data($div);
	$div.css('left', '-'+$a.css('padding-left')); 
	if($a.parents('.viewer').length){
		// expand dropdown UP instead of down if inside a .viewer
		$div.css('bottom', '-'+$a.css('padding-top'));
	} else {
		var t=$a.css('padding-top');
		t = Number(t.substr(0,t.lenght-2)) + 25;
		$div.css('top', '-'+t);
	}
	// timout because otherwise it fires right away
	setTimeout(function(){ AddDocumentClicked(HideQuantityDropdown, $tb.get(0)); }, 100);
}

function HideQuantityDropdown(e, tb){
	var $div = $j(tb).data();
	var $targ = $j(e.target);
	if($targ.is('li')) $targ = $j('a.option', $targ);
	if($targ.is('a.option')){
		tb.value = $targ.html();
	}
	$div.detach();
	$j(tb).data({ });
	RemoveDocumentClicked(HideQuantityDropdown, tb);
}

function InitCartAccountDropdown(){
	var $links = $j('div.shoppingCartAccount > div > div.firstLink > a.drop');
	$links.click(ToggleCartAccountDropdown);
}

function InitHeaderSearchForm(){
	$j('div.search form > a').click(function(){ $j('div.search form').submit(); });
}

/*	================================================	Cart and Team dropdowns */

function HideCartAccountDropdown(){
	if(document.cartAccountDropdown){
		document.cartAccountDropdown.hide();
		document.cartAccountDropdown = null;
	}
	// $j('div.shoppingCartAccount > div').css('opacity', 1.0);
	$j('div.shoppingCartAccount a.drop > img').attr('src', '/_media/images/common/shoppingCartAccount-plus.gif');
}

function ToggleCartAccountDropdown(e){
	var $a = $j(e.target).parent();
	var $cdiv = $a.parent().parent();
	var isTeam = $cdiv.hasClass('team');
	var $dd = $j('div.shoppingCartAccount div.'+(isTeam ? 'teamDropdown' : 'cartDropdown')); // dropdown
	var $sv = $cdiv; // my button box
	var $ov = $j('div.shoppingCartAccount div.'+(isTeam ? 'cart' : 'team')); // my button box
	$j('div.shoppingCartAccount a.drop > img').attr('src', '/_media/images/common/shoppingCartAccount-plus.gif');
	if(document.cartAccountDropdown){
		// hide other, show self
		if(document.cartAccountDropdown.get(0) != $dd.get(0)) {
			document.cartAccountDropdown.hide();
			$dd.show();
			document.cartAccountDropdown = $dd;
			//$sv.fadeTo(250, 1.0);
			//$ov.fadeTo(250, 0.25);
			$j('img', $a).attr('src', '/_media/images/common/shoppingCartAccount-minus.gif');
		// hide self
		} else {
			document.cartAccountDropdown.slideUp(150);
			document.cartAccountDropdown = null;
			//$ov.fadeTo(250, 1.0);
		}
	// show self
	} else {
		$dd.slideDown(150);
		//$sv.fadeTo(0, 1.0);
		//$ov.fadeTo(250, 0.25);
		document.cartAccountDropdown = $dd;
		$j('img', $a).attr('src', '/_media/images/common/shoppingCartAccount-minus.gif');
	}
}

/*	================================================	such as Partner scrollbox */

function InitHorizontalScrollboxes(){
	$j('div.leftArrow ~ div.viewer ~ div.rightArrow').parent().each(function(ii, el){
		var ow = $j('div.viewer', el).css('width'); // container width
		ow = Number(ow.substr(0, ow.length - 2));
		var $cnt = $j('div.viewer > *', el);
		var iw = $cnt.css('width'); // content width
		iw = Number(iw.substr(0, iw.length - 2));
		var maxs = -(Math.round(iw / ow) - 1) * ow;
		var func = function(e){
			var cp = $cnt.css('left');
			cp = Number(cp.substr(0, cp.length - 2));
			if(isNaN(cp)) cp = 0;
			var dir = $j(this).hasClass('leftArrow') ? -1 : 1;
			var np = Math.min(0, cp - dir * ow);
			np = Math.max(maxs, np);
			$cnt.animate({ left: np + "px" }, (ow / 400) * 150);
			var $p = $j(this).parent();
			if(np == 0)	$j('div.leftArrow a', $p).addClass('disabled');
			else $j('div.leftArrow a', $p).removeClass('disabled');
			if(np == maxs)	$j('div.rightArrow a', $p).addClass('disabled');
			else $j('div.rightArrow a', $p).removeClass('disabled');
		};
		$j('div.leftArrow, div.rightArrow', el).mousedown(func);
		$j('div.leftArrow a').addClass('disabled');
	});
}

/*	================================================	Reusable dropdown functions */

function DelayedShowDropdown(e){
	var $etarget = $j(e.target);
	$etarget = $etarget.is('li') ? $etarget : $etarget.parents('li').last();
	if(document.currentDropdown || $etarget.hasClass('instant')) ShowDropdown(e);
	else SetNamedTimeout('currentDropdownTimeout', function(){ ShowDropdown(e); }, 500);
}

function getElementAbsPosBox(el) {
	var pos = $j(el).offset();
	return { x1: pos.left, y1: pos.top, x2: pos.left+$j(el).width(), y2: pos.top+$j(el).height() };
}

function boxOverlapsBox( box1, box2 ) {
	var result =
		((box1.x1 >= box2.x1) && (box1.x1 <= box2.x2) && (box1.y1 >= box2.y1) && (box1.y1 <= box2.y2)) ||
		((box1.x1 >= box2.x1) && (box1.x1 <= box2.x2) && (box1.y2 >= box2.y1) && (box1.y2 <= box2.y2)) ||
		((box1.x2 >= box2.x1) && (box1.x2 <= box2.x2) && (box1.y1 >= box2.y1) && (box1.y1 <= box2.y2)) ||
		((box1.x2 >= box2.x1) && (box1.x2 <= box2.x2) && (box1.y2 >= box2.y1) && (box1.y2 <= box2.y2));
	return result;
}

function ShowDropdown(e){
	HideCartAccountDropdown();
	ClearNamedTimeout('currentDropdownTimeout');
	var $etarget = $j(e.target);
	$etarget = $etarget.is('li') ? $etarget : $etarget.parents('li').last();
	var $mydd = $j('div.dropdown', $etarget);
	if(document.currentDropdown) document.currentDropdown.hide();
	document.currentDropdown = $mydd.show(); //$etarget.hasClass('instant') ? $mydd.show() : fadeIn(250);
	ShowSemiActive(e);

	// hide select control hovering over dropdown menus IF any port of the select control is under the menu div
	if(is_ie6) {
		var ddBox = getElementAbsPosBox($mydd);
		$j('select, input').each(function() {
			elBox = getElementAbsPosBox(this);
			if(boxOverlapsBox(elBox, ddBox)) {
				$j(this).css('visibility',  'hidden');
			} // if
		}); // each
	} // if..ie6
}

function DelayedHideDropdown(e){
	SetNamedTimeout('currentDropdownTimeout', function(){ HideDropdown(e); }, 100);
}

function HideDropdown(e){
	ClearNamedTimeout('currentDropdownTimeout');
	if(document.currentDropdown) {
		var $pli = document.currentDropdown.closest('li');
		/*	if($pli.hasClass('prevSemiActive')){
			$pli.data().removeClass('semiActive');
		}*/
		if($pli.hasClass('instant')) document.currentDropdown.hide();
		else document.currentDropdown.hide();//fadeOut(100);
	}
	document.currentDropdown = null;
	ShowSemiActive(e);

	// reveal select control hovering over dropdown menus IF any port of the select control is under the menu div
	if(is_ie6) {
		$j('select, input').css('visibility','visible');
	} // if..ie6
}

/*	================================================	Topnav dropdown */

function ShowTopnavDropdown(e){
	HideCartAccountDropdown();
	ClearNamedTimeout('currentDropdownTimeout');
	var $etarget = $j(e.target).parents('li').last();
	var $mydd = $j('div.dropdown', $etarget);
	if(document.currentDropdown) document.currentDropdown.hide();
	document.currentDropdown = $mydd.show(); //$etarget.hasClass('instant') ? $mydd.show() : fadeIn(250);
	ShowSemiActive(e);
}

function InitCommonDropdowns(){
	// special secondary menu
	$j('.topnavDropdown .dropdown > ul > li').mouseenter(function(e){ $j(e.target).closest('li').addClass('hover');})
											.mouseleave(function(e){ $j(e.target).closest('li').removeClass('hover');});
	
	$j('.topnavDropdown .dropdown > ul').mouseleave(function(e){
		$j('.topnavDropdown .dropdown > ul > li > ul').parents('li').removeClass('hover');
	});
	// misc dropdowns, incl. dashboard
	$j('li.dropdownParent').mouseenter(DelayedShowDropdown).mouseleave(DelayedHideDropdown);
	// semiActives
	$j('li.nextSemiActive a').mouseenter(ShowSemiActive).mouseleave(ShowSemiActive);
	// top nav
	$j('li.topnavDropdown a em').mouseenter(ShowTopnavDropdown);
	$j('li.topnavDropdown').mouseleave(HideDropdown);
}

function px2number(px){
	return Number(px.substr(0, px.length - 2));
}

function ShowSemiActive(e){
	var dw = $j('.topnavDropdown .dropdown > ul').css('width');
  // JOR 4/29/2011 - this was put in to handle when we use a generic header
  if (typeof(dw) == "undefined"){
    return;
  }
	dw = Number(dw.substr(0, dw.length - 2));
	$j('.topnavDropdown .dropdown').css('margin-left', 24 - dw);
	var $etarget = $j(e.target);
	var $p = $etarget.is('.prevSemiActive, .nextSemiActive') ? $etarget : $etarget.closest('.prevSemiActive, .nextSemiActive');
	var $m;
	if($p.hasClass('prevSemiActive')){
		$m = $p.prev('.nextSemiActive');
	} else if($p.hasClass('nextSemiActive')){
		$m = $p.next('.prevSemiActive');
	}
	if(!$m) return;
	switch(e.type){
	case 'mouseenter':
		$m.addClass('semiActive');
		break;
	case 'mouseleave':
		$m.removeClass('semiActive');
		break;
	}
}

/*	================================================	Utility functions */

function SetNamedTimeout(timeoutName, timeoutFunc, delayMS){
	if(document[timeoutName]) clearTimeout(document[timeoutName]);
	document[timeoutName] = setTimeout(timeoutFunc, delayMS);
}

function ClearNamedTimeout(timeoutName){
	if(document[timeoutName]) clearTimeout(document[timeoutName]);
	document[timeoutName] = 0;
}
/*	================================================	Open new window */
// This is necessary for proper XHTML1.1 Validation
$j('.bvLinkTargetBlank').click(function(e) {
	e.preventDefault();
	var newWindow = window.open(this.getAttribute('href'), '_blank');
	newWindow.focus();
});

