var WRC; if(!WRC) WRC={}; if(!WRC.ui) WRC.ui={};
jQuery.noConflict();
jQuery(function() {
	(function(){
  	jQuery.getScript('/javascripts/jquery.translate-1.2.5.min.js', function(){
  		new WRC.ui.Translator();
  	});
  }).holdOn(100);
	
	jQuery('#icon_nav a').hover(function(e){
		jQuery('#text_nav .' + jQuery(e.target).parent('li').attr('class')).addClass('selected');
	},
	function(e){
		jQuery('#text_nav .' + jQuery(e.target).parent('li').attr('class')).removeClass('selected');
	});
	
	jQuery('#text_nav a').hover(function(e){
		jQuery('#icon_nav .' + jQuery(e.target).parent('li').attr('class')).addClass('selected');
		},
		function(e){
			jQuery('#icon_nav .' + jQuery(e.target).parent('li').attr('class')).removeClass('selected');
		});
		
		WRC.ui.fixExternalLinks();
	
});

Function.prototype.holdOn = function() {
	var __method = this
	var timeout = arguments[0];
	var args = arguments;
    return window.setTimeout(function() {
      return __method.apply(__method, args);
    }, timeout);
	}

jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

WRC.ui.fixExternalLinks = function() {
			var a = document.getElementsByTagName('a');
				for(var i=0; i<a.length; i++) {
					if(a[i].getAttribute('href') && (a[i].getAttribute('href').indexOf('http') == 0) && (a[i].getAttribute('href').toString().indexOf(window.location.host) == -1))
						a[i].onclick = function(event){
							var event = event || window.event;
							if(event.preventDefault)
								event.preventDefault();
							if(event.cancelBubble)
								event.cancelBubble = true;
							window.open(this.href);
							return false;
						}
				}
		}

WRC.ui.Translator = function() {
	this.current_lang = 'en';
	this.initEvents();
	if (jQuery.cookie('lang')) {
		jQuery('#' + jQuery.cookie('lang')).addClass('active');
  	if (jQuery.cookie('lang') != 'en') {
			this.translate('en', jQuery.cookie('lang'));
		}
  }
}

WRC.ui.Translator.prototype.initEvents = function() {
	var that = this;
	jQuery('#lang a').bind('click',{inst: that}, that.delegateEvent);
}

WRC.ui.Translator.prototype.delegateEvent = function(e){
	var that = e.data.inst;
	var to_lang = e.target.id;
	that.clearCurrentActive();
	jQuery('#' + to_lang).addClass('active');
	that.translate((jQuery.cookie('lang') || that.current_lang), to_lang);
}

WRC.ui.Translator.prototype.clearCurrentActive = function() {
	jQuery('#lang a').removeClass('active');
}

WRC.ui.Translator.prototype.translate = function(from_lang, to_lang) {
	jQuery('#nav2 .subnav, #right, #publications').translate(from_lang, to_lang);
	this.current_lang = to_lang;
	jQuery.cookie('lang', to_lang);
	
}
