(function($) {
	$.fn.autoshrinklist = function(options) {
		var settings = $.extend({},
			$.fn.autoshrinklist.defaults,options);
		return this.each(function(){
			var limit = settings['maxLimit'];
			var expandText = settings['expText'];
			var contractText = settings['contText'];
			var expandClass = settings['expClass'];
			var contractClass = settings['contClass'];
			var listElementHideClass = settings['elmHideClass'];
			var parentElement = settings['parListEl'];
			var childElement = settings['childListEl'];
			var totalLi = $(this).children(childElement);
			var childCount = totalLi.size();
			if(childCount <= limit){}else{
				limit = limit-1;
				for(i=0; i<childCount; i++){
					if(i > limit){
						$(totalLi[i]).addClass(listElementHideClass);
						if(childElement == 'dt') {
							$(totalLi[i]).next('dd').addClass(listElementHideClass);
						}
					}
				}
				$(this).after('<a href="#" class="' + expandClass + '">' + expandText + '</a>');
			}
			var aLink = $(this).next('a.'+expandClass);
			aLink.each(function(){
				count = $(this).prev(parentElement).children().length;
				if(count <= (limit)){
					$(this).addClass(contractClass);
				}
				$(this).toggle(function(){
					$(this).addClass(contractClass);
					$(this).html(contractText);
					$(this).prev(parentElement).children(childElement+'.'+listElementHideClass).removeClass(listElementHideClass);
					if(childElement == 'dt') {	$(this).prev(parentElement).children(childElement).next('dd.'+listElementHideClass).removeClass(listElementHideClass);
					}
					return false;
				},function(){
					$(this).removeClass(contractClass);
					$(this).html(expandText);
					var totalLi = $(this).prev(parentElement).children(childElement);
					var childCount = totalLi.size();
					for(i=0; i<childCount; i++){
						if(i > limit){
							$(totalLi[i]).addClass(listElementHideClass);
							if(childElement == 'dt') {
								$(totalLi[i]).next('dd').addClass(listElementHideClass);
							}
						}
					}
					return false;
				});
			});
		});
	};

	$.fn.autoshrinklist.defaults = {
		maxLimit: 3,
		expText: 'All Related Items',
		contText: 'Less Related Items',
		expClass: 'all',
		contClass: 'less',
		elmHideClass: 'hide',
		parListEl: 'ul',
		childListEl: 'li'
	};
})(jQuery);
$(document).ready(function(){
	try {
		fancySetup();
		videoClicks();
		tidytidy();
	} catch(err) {
		console.log(err);
	}
	
	//if ($('#contact_form').length) {
	//	$('#contact_form').validate({
	//		rules: {
	//			name:"required",
	//			subject:"required",
	//			message:"required",
	//			captcha:"required",
	//			from: {
	//				required:true,
	//				email:true
	//			}
	//		}
	//	});
	//}
	
	$("#search").each(function(){
		$(this)
			.addClass('inactive')
			.focus(function(){
				$(this).removeClass('inactive');
			})
			.blur(function() {
				$(this).addClass('inactive')
			});
	});

	//Handle offsite links
	$('#content a').filter(function() {
		var theHref = this;
		if (theHref.hostname && theHref.hostname !== location.hostname) {
			$(theHref).not(".noAutoIcon").addClass("offSite");
			$(theHref).not(".noAutoLink").bind('click keypress', function(event) {
				var code=event.charCode || event.keyCode;
				if (!code || (code && code == 13)) {
					if(pageTracker){
						var fixedLink = this.href;
						// fixedLink = fixedLink.replace(/https?:\/\/(.*)/,"$1");
						// fixedLink = '/outgoing/' + fixedLink;
						// pageTracker._trackPageview(fixedLink);
						// _gaq.push(['_trackEvent', 'Links', 'Outbound', this.href]);
					};
				};
			});
		};
	});

	//Automatic PDF file handling
	$("a[href$='.pdf']:not(.noAutoIcon)").addClass("pdf");
	$("a[href$='.pdf']").bind('click keypress', function(event) {
		var code=event.charCode || event.keyCode;
		if (!code || (code && code == 13)) {
			if(pageTracker){
				var fixedLink = "/downloaded-files/pdf/" + this.pathname;
				pageTracker._trackPageview(fixedLink);
			};
		};
	});

	//Track Downloads
	$("a.download").bind('click keypress', function(event) {
		var code=event.charCode || event.keyCode;
		if (!code || (code && code == 13)) {
			if(pageTracker){
				var fixedLink = "/downloaded-files/misc/" + this.pathname;
				pageTracker._trackPageview(fixedLink);
			};
		};
	});

	//colored OL
	$('ol li').wrapInner('<span class="olcontent"></span>').addClass('olcolor');

	$('ul#main-nav li,#location').hover(function(){
		$(this).addClass('active');
	},function(){
	$(this).removeClass('active');
	});


	$("body#supportDownloads ul:not(:has(li))").append("<li>No downloads in this category.</li>");

	var limit = 3;
	$("ul:not(.noAutoShrink)",$("#portlets")).each(function(){
		if($(this).parent("div").attr("id") == "multimedia"){limit = 1;}
		$(this).autoshrinklist({maxLimit: limit, expText: 'Todos', contText: 'Menos' });
	});

	$("dl:not(.noAutoShrink)",$("#portlets")).each(function(){
		if($(this).parent("div").attr("id") == "multimedia"){limit = 1;}
		$(this).autoshrinklist({maxLimit: limit, expText: 'Todos', contText: 'Menos', parListEl: 'dl', childListEl: 'dt'});
	});



	//add left border
	$("table.standard thead th:first").addClass("lb");

	$("a.flash-pop").click(function(){
		var rel = $(this).attr("rel");
		$('#showFlash').css('display', 'block').flash({ swf: '/flash/Player.swf', height: 480, width:640, params: { wmode:'transparent'}, flashvars:{flv:rel}});
		return false;
	});


	$("#content a[href$='.flv']").each(function(){
		rel = $(this).attr("href");
		$(this).addClass("thickbox ").attr({"rel":rel,"href":"#TB_inline?height=420&width=550&inlineId=flashPlayer"});
		$(this).click(function(){
		$('#showFlash').css('display', 'block').flash({ swf: '/flash/Player.swf', height: 400, width:550, params: { wmode:'transparent'}, flashvars:{flv:rel}});
			return false;
		});
	});

	$('li.print a').click(function(){
		window.print();
		return false;
	});

	//add left border
	$("table.standard thead th:first").addClass("lb");

	//$("div#comments div.comment:odd").addClass("odd")

	//Removes bottom-border from last item in secondary navigation
	$('div#secondary-nav li:last').addClass('last');


	$('a.content-edit').parent("p").addClass("logged-in");
});

function fancySetup() {
	$("a[href$=.jpg],a[href$=.JPG],a[href$=.png],a[href$=.PNG],a[href$=.gif],a[href$=.GIF]").fancybox({
		'titlePosition': 'inside'
	});
	if ($('a.media_link').length) {
		$('.media_link').fancybox({
			overlayOpacity: '0.8',
			overlayColor: '#222',
			titlePosition: 'inside'
		});
	}
	if ($('a.thickbox').length) {
		$('.thickbox').fancybox({
			overlayOpacity: '0.8',
			overlayColor: '#222',
			width: 620,
			height: 300,
			titlePosition: 'inside'
		});
	}
	if ($('a.iframe_link').length) {
		var $links = $('.iframe_link');
		$links.each(function(index) {
			var $link = $(this),
				$rev = $link.attr('rev'),
				iframeDims = $rev.match(/([\d]+)\s([\d]+)/),
				iframeW = 800,
				iframeH = 600;
			if (iframeDims != null) {
				iframeW = parseFloat(iframeDims[1]) + 10,
				iframeH = parseFloat(iframeDims[2]) + 10;
				if ($.browser.msie) {
					iframeW = iframeW + 10;
					iframeH = iframeH + 10;
				};
			};
			$('.iframe_link').eq(index).fancybox({
				overlayOpacity: '0.8',
				overlayColor: '#222',
				type: 'iframe',
				width: iframeW,
				height: iframeH,
				titlePosition: 'inside',
				onStart: function() {
					$('#fancybox-inner').css('background', '#fff url(\'http://latam.pbinsight.com/cssimages/icons/preview.gif\') no-repeat 50% 50%');
					// _gaq.push(['_trackEvent', 'Links', 'iFrame', this.href]);
				}
			});
		})
	}
};

function tidytidy() {
	if ($('.media_holder').length) {
		$('.media_holder:first').addClass('first');
		$('.media_holder:last').addClass('last');
	};
}

function videoClicks() {
	if ($('.media_link').length) {
		$('.media_link').click(function() {
			var $video = $(this).attr('title'),
				$page = jQuery.url.segment(4);
			// _gaq.push(['_trackEvent', 'Multimedia Files', 'Click', $page, $video]);
		})
	};
	if ($('.iframe_link').length) {
		$('.iframe_link').click(function() {
			var $video = $(this).attr('title'),
				$page = jQuery.url.segment(4);
			// _gaq.push(['_trackEvent', 'Multimedia Files', 'Click', $page, $video]);
		})
	};
}

jQuery.url=function(){var segments={};var parsed={};var options={url:window.location,strictMode:false,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}};var parseUri=function(){str=decodeURI(options.url);var m=options.parser[options.strictMode?"strict":"loose"].exec(str);var uri={};var i=14;while(i--){uri[options.key[i]]=m[i]||""}uri[options.q.name]={};uri[options.key[12]].replace(options.q.parser,function($0,$1,$2){if($1){uri[options.q.name][$1]=$2}});return uri};var key=function(key){if(!parsed.length){setUp()}if(key=="base"){if(parsed.port!==null&&parsed.port!==""){return parsed.protocol+"://"+parsed.host+":"+parsed.port+"/"}else{return parsed.protocol+"://"+parsed.host+"/"}}return(parsed[key]==="")?null:parsed[key]};var param=function(item){if(!parsed.length){setUp()}return(parsed.queryKey[item]===null)?null:parsed.queryKey[item]};var setUp=function(){parsed=parseUri();getSegments()};var getSegments=function(){var p=parsed.path;segments=[];segments=parsed.path.length==1?{}:(p.charAt(p.length-1)=="/"?p.substring(1,p.length-1):path=p.substring(1)).split("/")};return{setMode:function(mode){strictMode=mode=="strict"?true:false;return this},setUrl:function(newUri){options.url=newUri===undefined?window.location:newUri;setUp();return this},segment:function(pos){if(!parsed.length){setUp()}if(pos===undefined){return segments.length}return(segments[pos]===""||segments[pos]===undefined)?null:segments[pos]},attr:key,param:param}}();
