

/*
 * jQuery Color Animations
 * Copyright 2007 John Resig
 * Released under the MIT and GPL licenses.
 */

(function(jQuery){

	// We override the animation for all of these color styles
	jQuery.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i,attr){
		jQuery.fx.step[attr] = function(fx){
			if ( fx.state == 0 ) {
				fx.start = getColor( fx.elem, attr );
				fx.end = getRGB( fx.end );
			}

			fx.elem.style[attr] = "rgb(" + [
				Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0),
				Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0),
				Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0)
			].join(",") + ")";
		}
	});

	// Color Conversion functions from highlightFade
	// By Blair Mitchelmore
	// http://jquery.offput.ca/highlightFade/

	// Parse strings looking for color tuples [255,255,255]
	function getRGB(color) {
		var result;

		// Check if we're already dealing with an array of colors
		if ( color && color.constructor == Array && color.length == 3 )
			return color;

		// Look for rgb(num,num,num)
		if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
			return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])];

		// Look for rgb(num%,num%,num%)
		if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
			return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];

		// Look for #a0b1c2
		if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
			return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];

		// Look for #fff
		if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
			return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];

		// Otherwise, we're most likely dealing with a named color
		return colors[jQuery.trim(color).toLowerCase()];
	}
	
	function getColor(elem, attr) {
		var color;

		do {
			color = jQuery.curCSS(elem, attr);

			// Keep going until we find an element that has color, or we hit the body
			if ( color != '' && color != 'transparent' || jQuery.nodeName(elem, "body") )
				break; 

			attr = "backgroundColor";
		} while ( elem = elem.parentNode );

		return getRGB(color);
	};
	
	// Some named colors to work with
	// From Interface by Stefan Petre
	// http://interface.eyecon.ro/

	var colors = {
		aqua:[0,255,255],
		azure:[240,255,255],
		beige:[245,245,220],
		black:[0,0,0],
		blue:[0,0,255],
		brown:[165,42,42],
		cyan:[0,255,255],
		darkblue:[0,0,139],
		darkcyan:[0,139,139],
		darkgrey:[169,169,169],
		darkgreen:[0,100,0],
		darkkhaki:[189,183,107],
		darkmagenta:[139,0,139],
		darkolivegreen:[85,107,47],
		darkorange:[255,140,0],
		darkorchid:[153,50,204],
		darkred:[139,0,0],
		darksalmon:[233,150,122],
		darkviolet:[148,0,211],
		fuchsia:[255,0,255],
		gold:[255,215,0],
		green:[0,128,0],
		indigo:[75,0,130],
		khaki:[240,230,140],
		lightblue:[173,216,230],
		lightcyan:[224,255,255],
		lightgreen:[144,238,144],
		lightgrey:[211,211,211],
		lightpink:[255,182,193],
		lightyellow:[255,255,224],
		lime:[0,255,0],
		magenta:[255,0,255],
		maroon:[128,0,0],
		navy:[0,0,128],
		olive:[128,128,0],
		orange:[255,165,0],
		pink:[255,192,203],
		purple:[128,0,128],
		violet:[128,0,128],
		red:[255,0,0],
		silver:[192,192,192],
		white:[255,255,255],
		yellow:[255,255,0]
	};
	
})(jQuery);

;(function($){$.ui={plugin:{add:function(module,option,set){var proto=$.ui[module].prototype;for(var i in set){proto.plugins[i]=proto.plugins[i]||[];proto.plugins[i].push([option,set[i]]);}},call:function(instance,name,args){var set=instance.plugins[name];if(!set){return;}
for(var i=0;i<set.length;i++){if(instance.options[set[i][0]]){set[i][1].apply(instance.element,args);}}}},cssCache:{},css:function(name){if($.ui.cssCache[name]){return $.ui.cssCache[name];}
var tmp=$('<div class="ui-resizable-gen">').addClass(name).css({position:'absolute',top:'-5000px',left:'-5000px',display:'block'}).appendTo('body');$.ui.cssCache[name]=!!((!(/auto|default/).test(tmp.css('cursor'))||(/^[1-9]/).test(tmp.css('height'))||(/^[1-9]/).test(tmp.css('width'))||!(/none/).test(tmp.css('backgroundImage'))||!(/transparent|rgba\(0, 0, 0, 0\)/).test(tmp.css('backgroundColor'))));try{$('body').get(0).removeChild(tmp.get(0));}catch(e){}
return $.ui.cssCache[name];},disableSelection:function(e){e.unselectable="on";e.onselectstart=function(){return false;};if(e.style){e.style.MozUserSelect="none";}},enableSelection:function(e){e.unselectable="off";e.onselectstart=function(){return true;};if(e.style){e.style.MozUserSelect="";}},hasScroll:function(e,a){var scroll=/top/.test(a||"top")?'scrollTop':'scrollLeft',has=false;if(e[scroll]>0)return true;e[scroll]=1;has=e[scroll]>0?true:false;e[scroll]=0;return has;}};var _remove=$.fn.remove;$.fn.remove=function(){$("*",this).add(this).trigger("remove");return _remove.apply(this,arguments);};function getter(namespace,plugin,method){var methods=$[namespace][plugin].getter||[];methods=(typeof methods=="string"?methods.split(/,?\s+/):methods);return($.inArray(method,methods)!=-1);}
$.widget=function(name,prototype){var namespace=name.split(".")[0];name=name.split(".")[1];$.fn[name]=function(options){var isMethodCall=(typeof options=='string'),args=Array.prototype.slice.call(arguments,1);if(isMethodCall&&getter(namespace,name,options)){var instance=$.data(this[0],name);return(instance?instance[options].apply(instance,args):undefined);}
return this.each(function(){var instance=$.data(this,name);if(isMethodCall&&instance&&$.isFunction(instance[options])){instance[options].apply(instance,args);}else if(!isMethodCall){$.data(this,name,new $[namespace][name](this,options));}});};$[namespace][name]=function(element,options){var self=this;this.widgetName=name;this.widgetBaseClass=namespace+'-'+name;this.options=$.extend({disabled:false},$[namespace][name].defaults,options);this.element=$(element).bind('setData.'+name,function(e,key,value){return self.setData(key,value);}).bind('getData.'+name,function(e,key){return self.getData(key);}).bind('remove',function(){return self.destroy();});this.init();};$[namespace][name].prototype=$.extend({},$.widget.prototype,prototype);};$.widget.prototype={init:function(){},destroy:function(){this.element.removeData(this.widgetName);},getData:function(key){return this.options[key];},setData:function(key,value){this.options[key]=value;if(key=='disabled'){this.element[value?'addClass':'removeClass'](this.widgetBaseClass+'-disabled');}},enable:function(){this.setData('disabled',false);},disable:function(){this.setData('disabled',true);}};$.ui.mouse={mouseInit:function(){var self=this;this.element.bind('mousedown.'+this.widgetName,function(e){return self.mouseDown(e);});if($.browser.msie){this._mouseUnselectable=this.element.attr('unselectable');this.element.attr('unselectable','on');}
this.started=false;},mouseDestroy:function(){this.element.unbind('.'+this.widgetName);($.browser.msie&&this.element.attr('unselectable',this._mouseUnselectable));},mouseDown:function(e){(this._mouseStarted&&this.mouseUp(e));this._mouseDownEvent=e;var self=this,btnIsLeft=(e.which==1),elIsCancel=(typeof this.options.cancel=="string"?$(e.target).is(this.options.cancel):false);if(!btnIsLeft||elIsCancel||!this.mouseCapture(e)){return true;}
this._mouseDelayMet=!this.options.delay;if(!this._mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){self._mouseDelayMet=true;},this.options.delay);}
if(this.mouseDistanceMet(e)&&this.mouseDelayMet(e)){this._mouseStarted=(this.mouseStart(e)!==false);if(!this._mouseStarted){e.preventDefault();return true;}}
this._mouseMoveDelegate=function(e){return self.mouseMove(e);};this._mouseUpDelegate=function(e){return self.mouseUp(e);};$(document).bind('mousemove.'+this.widgetName,this._mouseMoveDelegate).bind('mouseup.'+this.widgetName,this._mouseUpDelegate);return false;},mouseMove:function(e){if($.browser.msie&&!e.button){return this.mouseUp(e);}
if(this._mouseStarted){this.mouseDrag(e);return false;}
if(this.mouseDistanceMet(e)&&this.mouseDelayMet(e)){this._mouseStarted=(this.mouseStart(this._mouseDownEvent,e)!==false);(this._mouseStarted?this.mouseDrag(e):this.mouseUp(e));}
return!this._mouseStarted;},mouseUp:function(e){$(document).unbind('mousemove.'+this.widgetName,this._mouseMoveDelegate).unbind('mouseup.'+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this.mouseStop(e);}
return false;},mouseDistanceMet:function(e){return(Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance);},mouseDelayMet:function(e){return this._mouseDelayMet;},mouseStart:function(e){},mouseDrag:function(e){},mouseStop:function(e){},mouseCapture:function(e){return true;}};$.ui.mouse.defaults={cancel:null,distance:1,delay:0};})(jQuery);(function($){$.widget("ui.tabs",{init:function(){this.options.event+='.tabs';this.tabify(true);},setData:function(key,value){if((/^selected/).test(key))
this.select(value);else{this.options[key]=value;this.tabify();}},length:function(){return this.$tabs.length;},tabId:function(a){return a.title&&a.title.replace(/\s/g,'_').replace(/[^A-Za-z0-9\-_:\.]/g,'')||this.options.idPrefix+$.data(a);},ui:function(tab,panel){return{options:this.options,tab:tab,panel:panel};},tabify:function(init){this.$lis=$('li:has(a[href])',this.element);this.$tabs=this.$lis.map(function(){return $('a',this)[0];});this.$panels=$([]);var self=this,o=this.options;this.$tabs.each(function(i,a){if(a.hash&&a.hash.replace('#',''))
self.$panels=self.$panels.add(a.hash);else if($(a).attr('href')!='#'){$.data(a,'href.tabs',a.href);$.data(a,'load.tabs',a.href);var id=self.tabId(a);a.href='#'+id;var $panel=$('#'+id);if(!$panel.length){$panel=$(o.panelTemplate).attr('id',id).addClass(o.panelClass).insertAfter(self.$panels[i-1]||self.element);$panel.data('destroy.tabs',true);}
self.$panels=self.$panels.add($panel);}
else
o.disabled.push(i+1);});if(init){this.element.addClass(o.navClass);this.$panels.each(function(){var $this=$(this);$this.addClass(o.panelClass);});if(o.selected===undefined){if(location.hash){this.$tabs.each(function(i,a){if(a.hash==location.hash){o.selected=i;if($.browser.msie||$.browser.opera){var $toShow=$(location.hash),toShowId=$toShow.attr('id');$toShow.attr('id','');setTimeout(function(){$toShow.attr('id',toShowId);},500);}
scrollTo(0,0);return false;}});}
else if(o.cookie){var index=parseInt($.cookie('ui-tabs'+$.data(self.element)),10);if(index&&self.$tabs[index])
o.selected=index;}
else if(self.$lis.filter('.'+o.selectedClass).length)
o.selected=self.$lis.index(self.$lis.filter('.'+o.selectedClass)[0]);}
o.selected=o.selected===null||o.selected!==undefined?o.selected:0;o.disabled=$.unique(o.disabled.concat($.map(this.$lis.filter('.'+o.disabledClass),function(n,i){return self.$lis.index(n);}))).sort();if($.inArray(o.selected,o.disabled)!=-1)
o.disabled.splice($.inArray(o.selected,o.disabled),1);this.$panels.addClass(o.hideClass);this.$lis.removeClass(o.selectedClass);if(o.selected!==null){this.$panels.eq(o.selected).show().removeClass(o.hideClass);this.$lis.eq(o.selected).addClass(o.selectedClass);var onShow=function(){$(self.element).triggerHandler('tabsshow',[self.ui(self.$tabs[o.selected],self.$panels[o.selected])],o.show);};if($.data(this.$tabs[o.selected],'load.tabs'))
this.load(o.selected,onShow);else
onShow();}
$(window).bind('unload',function(){self.$tabs.unbind('.tabs');self.$lis=self.$tabs=self.$panels=null;});}
for(var i=0,li;li=this.$lis[i];i++)
$(li)[$.inArray(i,o.disabled)!=-1&&!$(li).hasClass(o.selectedClass)?'addClass':'removeClass'](o.disabledClass);if(o.cache===false)
this.$tabs.removeData('cache.tabs');var hideFx,showFx,baseFx={'min-width':0,duration:1},baseDuration='normal';if(o.fx&&o.fx.constructor==Array)
hideFx=o.fx[0]||baseFx,showFx=o.fx[1]||baseFx;else
hideFx=showFx=o.fx||baseFx;var resetCSS={display:'',overflow:'',height:''};if(!$.browser.msie)
resetCSS.opacity='';function hideTab(clicked,$hide,$show){$hide.animate(hideFx,hideFx.duration||baseDuration,function(){$hide.addClass(o.hideClass).css(resetCSS);if($.browser.msie&&hideFx.opacity)
$hide[0].style.filter='';if($show)
showTab(clicked,$show,$hide);});}
function showTab(clicked,$show,$hide){if(showFx===baseFx)
$show.css('display','block');$show.animate(showFx,showFx.duration||baseDuration,function(){$show.removeClass(o.hideClass).css(resetCSS);if($.browser.msie&&showFx.opacity)
$show[0].style.filter='';$(self.element).triggerHandler('tabsshow',[self.ui(clicked,$show[0])],o.show);});}
function switchTab(clicked,$li,$hide,$show){$li.addClass(o.selectedClass).siblings().removeClass(o.selectedClass);hideTab(clicked,$hide,$show);}
this.$tabs.unbind('.tabs').bind(o.event,function(){var $li=$(this).parents('li:eq(0)'),$hide=self.$panels.filter(':visible'),$show=$(this.hash);if(($li.hasClass(o.selectedClass)&&!o.unselect)||$li.hasClass(o.disabledClass)||$(this).hasClass(o.loadingClass)||$(self.element).triggerHandler('tabsselect',[self.ui(this,$show[0])],o.select)===false){this.blur();return false;}
self.options.selected=self.$tabs.index(this);if(o.unselect){if($li.hasClass(o.selectedClass)){self.options.selected=null;$li.removeClass(o.selectedClass);self.$panels.stop();hideTab(this,$hide);this.blur();return false;}else if(!$hide.length){self.$panels.stop();var a=this;self.load(self.$tabs.index(this),function(){$li.addClass(o.selectedClass).addClass(o.unselectClass);showTab(a,$show);});this.blur();return false;}}
if(o.cookie)
$.cookie('ui-tabs'+$.data(self.element),self.options.selected,o.cookie);self.$panels.stop();if($show.length){var a=this;self.load(self.$tabs.index(this),$hide.length?function(){switchTab(a,$li,$hide,$show);}:function(){$li.addClass(o.selectedClass);showTab(a,$show);});}else
throw'jQuery UI Tabs: Mismatching fragment identifier.';if($.browser.msie)
this.blur();return false;});if(!(/^click/).test(o.event))
this.$tabs.bind('click.tabs',function(){return false;});},add:function(url,label,index){if(index==undefined)
index=this.$tabs.length;var o=this.options;var $li=$(o.tabTemplate.replace(/#\{href\}/g,url).replace(/#\{label\}/g,label));$li.data('destroy.tabs',true);var id=url.indexOf('#')==0?url.replace('#',''):this.tabId($('a:first-child',$li)[0]);var $panel=$('#'+id);if(!$panel.length){$panel=$(o.panelTemplate).attr('id',id).addClass(o.hideClass).data('destroy.tabs',true);}
$panel.addClass(o.panelClass);if(index>=this.$lis.length){$li.appendTo(this.element);$panel.appendTo(this.element[0].parentNode);}else{$li.insertBefore(this.$lis[index]);$panel.insertBefore(this.$panels[index]);}
o.disabled=$.map(o.disabled,function(n,i){return n>=index?++n:n});this.tabify();if(this.$tabs.length==1){$li.addClass(o.selectedClass);$panel.removeClass(o.hideClass);var href=$.data(this.$tabs[0],'load.tabs');if(href)
this.load(index,href);}
this.element.triggerHandler('tabsadd',[this.ui(this.$tabs[index],this.$panels[index])],o.add);},remove:function(index){var o=this.options,$li=this.$lis.eq(index).remove(),$panel=this.$panels.eq(index).remove();if($li.hasClass(o.selectedClass)&&this.$tabs.length>1)
this.select(index+(index+1<this.$tabs.length?1:-1));o.disabled=$.map($.grep(o.disabled,function(n,i){return n!=index;}),function(n,i){return n>=index?--n:n});this.tabify();this.element.triggerHandler('tabsremove',[this.ui($li.find('a')[0],$panel[0])],o.remove);},enable:function(index){var o=this.options;if($.inArray(index,o.disabled)==-1)
return;var $li=this.$lis.eq(index).removeClass(o.disabledClass);if($.browser.safari){$li.css('display','inline-block');setTimeout(function(){$li.css('display','block');},0);}
o.disabled=$.grep(o.disabled,function(n,i){return n!=index;});this.element.triggerHandler('tabsenable',[this.ui(this.$tabs[index],this.$panels[index])],o.enable);},disable:function(index){var self=this,o=this.options;if(index!=o.selected){this.$lis.eq(index).addClass(o.disabledClass);o.disabled.push(index);o.disabled.sort();this.element.triggerHandler('tabsdisable',[this.ui(this.$tabs[index],this.$panels[index])],o.disable);}},select:function(index){if(typeof index=='string')
index=this.$tabs.index(this.$tabs.filter('[href$='+index+']')[0]);this.$tabs.eq(index).trigger(this.options.event);},load:function(index,callback){var self=this,o=this.options,$a=this.$tabs.eq(index),a=$a[0],bypassCache=callback==undefined||callback===false,url=$a.data('load.tabs');callback=callback||function(){};if(!url||!bypassCache&&$.data(a,'cache.tabs')){callback();return;}
var inner=function(parent){var $parent=$(parent),$inner=$parent.find('*:last');return $inner.length&&$inner||$parent;};var cleanup=function(){self.$tabs.filter('.'+o.loadingClass).removeClass(o.loadingClass).each(function(){if(o.spinner)
inner(this).parent().html(inner(this).data('label.tabs'));});self.xhr=null;};if(o.spinner){var label=inner(a).html();inner(a).wrapInner('<em></em>').find('em').data('label.tabs',label).html(o.spinner);}
var ajaxOptions=$.extend({},o.ajaxOptions,{url:url,success:function(r,s){$(a.hash).html(r);cleanup();if(o.cache)
$.data(a,'cache.tabs',true);$(self.element).triggerHandler('tabsload',[self.ui(self.$tabs[index],self.$panels[index])],o.load);o.ajaxOptions.success&&o.ajaxOptions.success(r,s);callback();}});if(this.xhr){this.xhr.abort();cleanup();}
$a.addClass(o.loadingClass);setTimeout(function(){self.xhr=$.ajax(ajaxOptions);},0);},url:function(index,url){this.$tabs.eq(index).removeData('cache.tabs').data('load.tabs',url);},destroy:function(){var o=this.options;this.element.unbind('.tabs').removeClass(o.navClass).removeData('tabs');this.$tabs.each(function(){var href=$.data(this,'href.tabs');if(href)
this.href=href;var $this=$(this).unbind('.tabs');$.each(['href','load','cache'],function(i,prefix){$this.removeData(prefix+'.tabs');});});this.$lis.add(this.$panels).each(function(){if($.data(this,'destroy.tabs'))
$(this).remove();else
$(this).removeClass([o.selectedClass,o.unselectClass,o.disabledClass,o.panelClass,o.hideClass].join(' '));});}});$.ui.tabs.defaults={unselect:false,event:'click',disabled:[],cookie:null,spinner:'Loading&#8230;',cache:false,idPrefix:'ui-tabs-',ajaxOptions:{},fx:null,tabTemplate:'<li><a href="#{href}"><span>#{label}</span></a></li>',panelTemplate:'<div></div>',navClass:'ui-tabs-nav',selectedClass:'ui-tabs-selected',unselectClass:'ui-tabs-unselect',disabledClass:'ui-tabs-disabled',panelClass:'ui-tabs-panel',hideClass:'ui-tabs-hide',loadingClass:'ui-tabs-loading'};$.ui.tabs.getter="length";$.extend($.ui.tabs.prototype,{rotation:null,rotate:function(ms,continuing){continuing=continuing||false;var self=this,t=this.options.selected;function start(){self.rotation=setInterval(function(){t=++t<self.$tabs.length?t:0;self.select(t);},ms);}
function stop(e){if(!e||e.clientX){clearInterval(self.rotation);}}
if(ms){start();if(!continuing)
this.$tabs.bind(this.options.event,stop);else
this.$tabs.bind(this.options.event,function(){stop();t=self.options.selected;start();});}
else{stop();this.$tabs.unbind(this.options.event,stop);}}});})(jQuery);

var popupLeftPos = (window.screen.width - 486) / 2;
var popupTopPos = (window.screen.height - 412) / 2;

$(document).ready(function(){
	
	dropDownMenu.init();	

	$("a[@rel=external]").attr('target', '_blank');
	
	$("#enlargeImage a").click(function(){
		$('#picturesList li:first a:first').triggerHandler('click');
	});
	// Default values
	defaultValues.init();
	
	$('#homecover').initCover();
	$('#top_articles').topArticles();
});

defaultValues = {
	init : function() {
		var default_values = new Array();

	  $("input.default-value").focus(function() {
	    if (!default_values[this.id]) {
	      default_values[this.id] = this.value;
	    }
	    if (this.value == default_values[this.id]) {
	      this.value = '';
	    }
	    $(this).blur(function() {
	      if (this.value == '') {
	        this.value = default_values[this.id];
	      }
	    });
	  });
	}
}


settings = {
	initialized : false,
	
	init : function(val) {
 		if (!this.initialized) {
			$.each(val, function(msg) {
				if (!settings[msg]) {
					settings[msg] = val[msg];
				};
			});

			this.initialized = true;
		} else {
			return false;
		};
	}
};

dropDownMenu = {
	init : function() {
		$('ul#navBar ul, #mm ul').hide().parent().hover(this.mouseOver, this.mouseOut);
	},
	mouseOver : function() {
		$(this).children("ul").fadeIn();
	},
	mouseOut : function() {
		$(this).children("ul").fadeOut();
	}
}

/**
 * Top articles functionality
 */
$.fn.topArticles = function () {
	if ( !this.length )
		return;
	this.each( function() {
		$.fn.topArticles.applyEvents( $(this) );
	});
};
$.fn.topArticles.applyEvents = function ( $container ) {

	$container.find('a.next, a.prev').click( function () {
		if ( $.fn.topArticles.animating )
			return false;
		
		$.fn.topArticles.animating = true;
		
		var anim = { opacity: 0 };
		if ( this.className == 'next' )
			anim.paddingLeft = 5;
		else
			anim.paddingLeft = 25;

		$container.find('ul:first').animate(
			anim, 400, null,
			function () { $.fn.topArticles.animating = false });
		
		$.get( this.href, null, function (data) {
			$.fn.topArticles.onTopLoad(
					$container, data, $.fn.topArticles.applyEvents );
		});
		return false;
	});
};
$.fn.topArticles.onTopLoad = function ( $container, html, callback ) {
	if ( $.fn.topArticles.animating ) {
		setTimeout( function () {
			$.fn.topArticles.onTopLoad( $container, html, callback );
		}, 100 );
		return;
	}
	$container.html( html );
	callback( $container );
}
$.fn.topArticles.animating = false;

language = {
	change : function(language, prefix) {
		prefix = prefix || '';
		if (language == "fr" && $("#content-"+prefix+"en").is(":visible")) {
			$("#content-"+prefix+"en").fadeOut("fast", function() {
				$("#content-"+prefix+"fr").fadeIn("fast");
			});
			$("#link-"+prefix+"fr").addClass("on");
			$("#link-"+prefix+"en").removeClass("on");
			
		} else if (language == "en" && $("#content-"+prefix+"fr").is(":visible")) {
			$("#content-"+prefix+"fr").fadeOut("fast", function() {
				$("#content-"+prefix+"en").fadeIn("fast");
			});
			$("#link-"+prefix+"en").addClass("on");
			$("#link-"+prefix+"fr").removeClass("on");
		};
	}
}

whereTo = {
	init : function() {
		$("div#stay").show();
		$(".stay a").click(function(){
			whereTo.hideAll();
			whereTo.showItem("stay");
			return false;
		});
		$(".eat a").click(function(){
			whereTo.hideAll();
			whereTo.showItem("eat");
			return false;
		});
		$(".do a").click(function(){
			whereTo.hideAll();
			whereTo.showItem("do");
			return false;
		});
	},
	hideAll : function() {
		$("#stay,#eat,#do").hide();
	},
	showItem : function(name) {
		$("#"+name).show();
	}
}

/* ------------------------------------------------------------------------
	Homepage Cover Box
------------------------------------------------------------------------- */

$.fn.initCover = function() {
	var _zindex = 10;
	var _total = 0;
	var _previousSelection = null;
	var _currentSelection = null;
	var $this = $(this);
	var timeout = null; 
	var _nextIndex = 0;
	var rotate = false; // whether to rotate
	
	var select = function(article) {
		if ( ! article ) {
			return;
		}
		var $article = $(article);
		if ( _currentSelection != null ) {	
			if ( _currentSelection.get(0) == article ) {
				// this is the same article
				return;
			}	
			if (timeout) {
				clearTimeout(timeout);
			}	
			if ( _previousSelection ) { 
				_previousSelection.find('div.img').stop().css('opacity', 0);
			}
			_currentSelection
					.stop()
					.css('background-color', '#E3E3E3');
			_currentSelection.find('div.img')
					.stop();
			_previousSelection = _currentSelection; 
			
			_currentSelection = $article
					.css('opacity', 1)
					.animate({ backgroundColor: '#FFFFFF' }, 500);
			_currentSelection.find('div.img')
					.stop()
					.css('opacity', 0)
					.css('z-index', _zindex++)
					.animate({ opacity: 1 }, 500);
		} else {
			if (timeout) {
				clearTimeout(timeout);
			}
			_currentSelection = $article
		}
		
		// queues the next article
		_nextIndex = (parseInt($article.data('position')) + 1) % _total;
		if (rotate) {
			timeout = setTimeout(function() {
				select($this.find('a.article:eq(' + _nextIndex + ')').get(0));
			}, 4000);
		}
	}
	
	return this.each(function() {
		var position = 0;
		$this.find('a.article')
				.each(function() {
					$(this).data('position', position++).hover(
						function() { select(this); },
						function() {}
					);	
				});
		_total = position;
		select($this.find('a.first:first'));
	});
}
	
	magPanel = {
		pages : {'exclusive': 1, 'magazine': 1, 'entertainment': 1},
		
		init : function(pageCount) {
			this.pageCount = pageCount;
		},
		
		next : function(type) {
			// What page are we at
			if (++this.pages[type] > this.pageCount[type]) {
				this.pages[type] = 1;
			};
			
			this.load(type);
		},

		previous : function(type) {
			if (--this.pages[type] == 0) {
				this.pages[type] = this.pageCount[type];
			};
			
			this.load(type);
		},
		load : function(type) {
			$c = $("#"+type+"Box"); // the container the content is loaded in
			magPanel.displayLoader($c); // display the loader

			toLoad = '/'+settings.lang+'/issues/listarticles/'+type+'/page:'+ (this.pages[type]); // The content to load

			$.ajax({
				type: "GET",
				url: toLoad,
				dataType: "text",
				success : function(responseText){
					$c.html(responseText);
				},
				error : function() {
					if(settings.lang == 'fr'){
						$c.html('Une erreur est survenue avec votre requête, veuillez réessayer plus tard.');
					}else{
						$c.html('Error processing your request, please try again later.');
					}
				},
				complete : function() {
					magPanel.hideLoader();
				}
			});
		},		
		displayLoader : function(container) {
			offset = $(container).parent().offset();
			
			$('body').append('<div class="ajax-loader"><img src="/web/images/backgrounds/ajax-loader.gif" alt="loading" /></div>');
			
			$('.ajax-loader').css({
				'position' : 'absolute',
				'z-index' : 10000,
				'top' : offset.top,
				'left' : offset.left,
				'width' : $(container).parent().width() + 3,
				'height' : $(container).parent().height() + 2
			});
		},
		hideLoader : function() {
			$('.ajax-loader').remove();
		}
	};
	
	/* ------------------------------------------------------------------------
		picBrowser
		Use: To navigate the pictures in the article view
	------------------------------------------------------------------------- */

		picBrowser = {
			init : function(){
				picBrowser.itemWidth = $('div.picSwitcher ul li:first').width();

				// Set all the li positions
				$.each($('div.picSwitcher ul li'), function(i){
					$('div.picSwitcher ul li:eq('+i+')').css({
						'position' : 'absolute',
						'left' : picBrowser.itemWidth * i
					});
				});
			},
			next : function(){
				$.each($('div.picSwitcher ul li'), function(i){
					$('div.picSwitcher ul li:eq('+i+')').animate({
					   left: (i * picBrowser.itemWidth) - picBrowser.itemWidth
					 }, 500, function(){
						$.each($('div.picSwitcher ul li'), function(i){
							$(this).css({
								'position' : 'absolute',
								'left' : (picBrowser.itemWidth * i)
							});
						});
					});
				});

				$('div.picSwitcher ul li:first').appendTo($('div.picSwitcher ul'));
			},
			previous : function(){
				
				$('div.picSwitcher ul li:last-child').css('left', - picBrowser.itemWidth);

				$('div.picSwitcher ul li:last-child').prependTo($('div.picSwitcher ul'));

				$.each($('div.picSwitcher ul li'), function(i){
					$('div.picSwitcher ul li:eq('+i+')').animate({
					   left: (i * picBrowser.itemWidth)
					 }, 500);
				});
			}
		}
		
		
		schedule = {
			television : function() {
				url = '/' + settings.lang + '/entertainment/television';
				$("#television").load(url);
			},

			audio : function() {
				url = '/' + settings.lang + '/entertainment/audio';
				$("#audio").load(url);
			},

			movies : function() {
				url = '/' + settings.lang + '/entertainment/movies';
				$("#movies").load(url);
			}


		}
		
		ondemand = {
			toggle : function() {
				pageTracker._trackPageview('getting-started-with-on-demand');
				
				$('#ondemand').slideToggle();
				

				return false;
			}
		}
		
		/* ------------------------------------------------------------------------
			shedule Add
			Use: To manage schedule items in the cms
		------------------------------------------------------------------------- */
		shedule = {
			removeitem : function (element) {
				$(element).parent('li').remove();
			}
			}
			
		/* ------------------------------------------------------------------------
			entertainment Sort
			Use: To sort the schedule items in the front end (/entertainment)
		------------------------------------------------------------------------- */
		
		strings = {
			cleanencodeuri : function (str) {
				str = encodeURI(str);
				str = str.replace(/\//,'|');
				str = str.replace(/&/,':amp:');
				return str;
				
				// alert(encodeURI(str));
			}
		}
		
		entertainment = {
			movieParams : {},
			albumParams : {},
			tvParams : {},
			dateToShow : '',
			activeTab : '',
			buildparams : function(params) {
				url = "";
				for(param in params) {
					if(params[param] != "") {
						url += "/" + param + ":" + strings.cleanencodeuri(params[param]);
					}
				}
				// if we have a date to show
				if (this.dateToShow != '') {
					url += '/scheduleDate:'+ strings.cleanencodeuri(this.dateToShow);
				}
				if (this.activeTab != '') {
					url += '/#'+ this.activeTab;
				}
				return url;
			},
			viewall : function (caller) {
				$(caller).parents('div:first').parents('div:first').load(caller.href);
				this.movieParams = {};
				this.albumParams = {};
				this.tvParams = {};
			},
			sortmovielang : function (caller, absolute, lang) {
				this.movieParams['lang'] = lang;
				url = this.buildparams(this.movieParams);
				$(caller).parents('div:first').parents('div:first').load(absolute+url);
			},
			sortmoviecateg : function (caller, absolute, categ) {
				this.movieParams['categ'] = categ;
				url = this.buildparams(this.movieParams);
				$(caller).parents('div:first').parents('div:first').load(absolute+url);
			},
			sortmovierating : function	(caller, absolute, rating) {
				this.movieParams['rating'] = rating;
				url = this.buildparams(this.movieParams);
				$(caller).parents('div:first').parents('div:first').load(absolute+url);
			},
			sortalbumgenre : function (caller, absolute, genre) {
				this.albumParams['genre'] = genre;
				url = this.buildparams(this.albumParams);
				$(caller).parents('div:first').parents('div:first').load(absolute+url);
			},
			// sortalbumcompany : function	(caller, absolute, company) {
			// 	this.albumParams['company'] = company;
			// 	url = this.buildparams(this.albumParams);
			// 	$(caller).parents('div:first').parents('div:first').load(absolute+url);
			// },
			sorttvcateg : function (caller, absolute, categ) {
				this.tvParams['categ'] = categ;
				url = this.buildparams(this.tvParams);
				$(caller).parents('div:first').parents('div:first').load(absolute+url);
			},
			scheduleDate : function (caller, date, url){
				this.dateToShow = date;
				// if (type=='movie') {
				// 	url = this.buildparams(this.movieParams);
				// }else if(type=='tv') {
				// 	url = this.buildparams(this.tvParams);
				// }else if(type=='audio') {
				// 	url = this.buildparams(this.albumParams);
				// }
				// 
				// $(caller).parents('div:eq(2)').load(absolute+url);
				$(caller).parents('#now-playing').load(url+'/scheduleDate:'+date+'/#'+this.activeTab);
			}
		}

		deletemedia = {
			swfcarousel : function (caller){
				$.ajax({
					url: $(caller).attr('href'),
					success: function(returnval){
						if (returnval) {
							$(caller).parents('div:first').hide('slow');
						}else{
							$(caller).parents('div:first').appendTo('Error deleting the media');
						}
					}
				});
				return false;
			},
			imgdelete : function (caller) {
				this.swfcarousel(caller);
			}
		}
		
		managePopup = {
			interviewBy : function (caller) {
				interviewWindow = window.open($(caller).attr('href'), 'Interview By manager', 'width=500,height=500');
			},
			photoBy : function (caller) {
				
			}
		}
		
		
/**** GENERIC FUNCTIONS *****/
function popUp(url, w, h) {
	window.open(url,'_blank','width='+w+',height='+h+',toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,copyhistory=no,resizable=no');
}