/* IE6 flicker fix
-------------------------------------------------- */
var em_reg = /([\w]+)(\s|\%20)\[\-at\-\](\%20|\s)([\w]+.[\w]{2,3})/g;
try { document.execCommand("BackgroundImageCache", false, true); } catch(err){}
$.browser.msie6 = $.browser.msie && /MSIE 6\.0/i.test(window.navigator.userAgent) && !/MSIE 7\.0/i.test(window.navigator.userAgent);

var widget_gallery_opened = false;

$.fn.tagName = function(){
	if(1 === this.length){
		return this[0].tagName.toLowerCase();
	} else{
		var tagNames = [];
		this.each(function(i, el){
			tagNames[i] = el.tagName.toLowerCase();
		});
		return tagNames;
	}
};

$(document).ready(function(){

	$('#accessibility_link').removeClass('hidden');
	
	// re-replace e-mail addresses
	$('p, big, small, li, td, th, a, :text').each(function() {	
		try {
			this.tagName == 'A' && (this.href = this.href.replace(em_reg, "$1@$4"));
			this.tagName == 'INPUT' && (this.value = this.value.replace(em_reg, "$1@$4"));
			typeof this.innerHTML != 'undefined' && (this.innerHTML = this.innerHTML.replace(em_reg, "$1@$4"));
		} catch(e) {}
	});

	// Add nice tooltips
	$('.showtooltip').tooltip();
	// Add livebox hover
	$('DIV.livebox01hover').hover(function(){ $(this).removeClass('livebox01sub'); },function(){ $(this).addClass('livebox01sub'); });
	// Make input fields nice
	$('.content SELECT:not(.widget_types_classificator), .content INPUT, .content TEXTAREA').nicecontrols();
	// Add hovers
	$('UL.actions SPAN.btn').hover(function(){
		$(this).addClass('btn-hover');
	},function(){
		$(this).removeClass('btn-hover');
	});
	$('UL.actions SPAN.main').hover(function(){
		$(this).addClass('main-hover');
	},function(){
		$(this).removeClass('main-hover');
	});
	$('UL.actions SPAN.secondary').hover(function(){
		$(this).addClass('secondary-hover');
	},function(){
		$(this).removeClass('secondary-hover');
	});
	$('#sitesearch-submit').hover(function(){
		$(this).addClass('sitesearch-submit-hover');
	},function(){
		$(this).removeClass('sitesearch-submit-hover');
	});
	// External icons
	var host = location.hostname.split('.');
	host = (typeof host[host.length-2] != 'undefined' ? host[host.length-2] + "." : '') + host[host.length-1];
	$('a:not(.no_icon):not([hostname$='+host+'])[hostname!=""]').filter(function() {
		return $('img', this).size()==0;
	}).append(' <img src="' + js_site_url + 'img/' + (typeof active_skin == 'string' ? active_skin : 'skin01') + '/ico_external.gif" alt="' + js_new_window_txt + '" title="' + js_new_window_txt + '" /> ');
	// Separators
	$(".content hr").each(function() {
		if (!$(this).hasClass("original_separator"))
		{
			hr_item = $('<div class="separator"></div>');
			$(this).before(hr_item);
			hr_item.append($(this));
		}
	});

	tb_init('a.thickbox, area.thickbox, input.thickbox');
	/* RKWidgets gallery hash handler */
	$('.widget_subitem_placeholder_gallery a').bind('click', function() {
		var hash_pos = $(this).attr('class').substr($(this).attr('class').indexOf('widget_gallery_image-', 0));
		var hash_arr = hash_pos.split('-');
		window.location.hash = $(this).attr('rel') + (hash_arr[1] ? '-' + hash_arr[1] : '-0');
	});
	checkWidgetsGalleryHash();
	checkImagesHash();

});


function checkWidgetsGalleryHash(){
	var hashArray = window.location.hash.substring(1).split('-');
	if (hashArray[0]) {
		var hash = hashArray[0];
		var el = $('.widget_subitem_placeholder_gallery a').each(function() {
			if ($(this).attr('rel') == hash && widget_gallery_opened == false && $(this).hasClass('widget_gallery_image-' + hashArray[1])) {
				widget_gallery_opened = true;
				var tempSrc = $(this).attr('href');
				$(this).click();
			}
		});
	}
}

function checkImagesHash(){
	var hash = window.location.hash.substring(1);
	if (hash.length > 0) {
		img_open = false;
		var el = $('.' + hash).each(function() {
			if (img_open == false) {
				img_open = true;
				$(this).click();
			}
		});
	}
}


/***********************************************/
/* WAI ARIA compatible form fields replacement */

jQuery.fn.nicecontrols = function () {
    $('BODY').append('<div id="niceselect-dropdowns"></div>');
    $(this).each(function () {
        // init
        var rand = Math.round(Math.random() * 10000000);
        var $elem = $(this);
		// store element position and dimensions
		$elem.data('marginTop',$elem.css('margin-top'));
		$elem.data('marginRight',$elem.css('margin-right'));
		$elem.data('marginBottom',$elem.css('margin-bottom'));
		$elem.data('marginLeft',$elem.css('margin-left'));
		$elem.data('float',$elem.css('float'));
		$elem.data('width',$elem.outerWidth());
		$elem.data('height',$elem.outerHeight());
		if($elem.tagName() == 'select'){
			$elem.data('setfocus', false).wrap('<span class="niceselect"></span>').after('<img class="replacement" src="' + js_site_url + 'img/blank.gif" alt="" /><span class="cont01" id="niceselect_master_' + rand + '" role="button" aria-haspopup="true" aria-owns="niceselect_slave_' + rand + '"><span class="cont02"></span><span class="c c1"></span><span class="c c2"></span><span class="c c3"></span><span class="c c4"></span></span>');
			var $container = $elem.parents('SPAN.niceselect').eq(0);
			var $holder = $container.find('IMG.replacement');
			var $drop = $('<div class="niceselect-drop" id="niceselect_slave_' + rand + '" role="listbox" aria-hidden="true" aria-labelledby="niceselect_master_' + rand + '" aria-activedescendant="niceselect_master_' + rand + '_active"><div class="scroller"><ul></ul></div></div>');
			var $opts = $drop.find('UL');
			var t = ''
			// fill replacement with data and create content
			$elem.find('OPTION, OPTGROUP').each(function (a, b) {
				var $b = $(b);
				if ($b.tagName() == 'optgroup') {
					var $item = $('<li role="presentation"><div class="group"><span>' + $b.attr('label') + '</span></div></li>');
				} else {
					$b.text() == "" ? t = '&nbsp;' : t = $b.text();
					var $item = $('<li role="presentation"><div role="option" aria-selected="false"><span>' + t + '</span></div></li>');
					if ($b.is(':selected')) {
						$item.find('div').eq(0).addClass('selected').attr('aria-selected', 'true').attr('id', 'niceselect_master_' + rand + '_active');
					}
					if ($b.parents('OPTGROUP').length > 0) {
						$item.find('div').eq(0).addClass('grouped');
					}
				}
				$opts.append($item);
			});
			$('#niceselect-dropdowns').append($drop);
			// mimic owner css
			$container.css({
				marginTop: $elem.css('margin-top'),
				marginRight: $elem.css('margin-right'),
				marginBottom: $elem.css('margin-bottom'),
				marginLeft: $elem.css('margin-left'),
				width: $elem.data('width'),
				height: $elem.outerHeight()
			});
			$holder.css({
				width: $elem.data('width') + 'px',
				height: $elem.outerHeight() + 'px'
			});
			$container.find('SPAN.cont02').eq(0).css({
				width: $container.outerWidth() - ($container.find('SPAN.cont01').eq(0).outerWidth() - $container.find('SPAN.cont02').eq(0).outerWidth()) + 'px'
			}).html($elem.find('OPTION:selected').html() == '' ? '&nbsp;' : $elem.find('OPTION:selected').text());
			// die if select is empty
			if ($elem.find('OPTION').length == 0) {
				return;
			}
			// set events
			$container.find('SPAN.cont01').mousedown(function () {
				if ($elem.is(':disabled')) {
					return false;
				}
				if ($container.hasClass('niceselect-open')) {
					$container.removeClass('niceselect-open');
					$('.niceselect-drop-open').removeClass('niceselect-drop-open').attr('aria-hidden', 'true');
				} else {
					$('.niceselect-open, .niceselect-focus').removeClass('niceselect-open').removeClass('niceselect-focus');
					$('.niceselect-drop-open').removeClass('niceselect-drop-open').attr('aria-hidden', 'true');
					$container.addClass('niceselect-open');
					$drop.addClass('niceselect-drop-open').attr('aria-hidden', 'false');
					if ($drop.find('UL').outerHeight() > 240) {
						$drop.find('DIV.scroller').css('height', '240px').scrollTop(0);
						$drop.find('DIV.scroller').scrollTop($drop.find('DIV.selected').position().top - ($drop.find('DIV.scroller').outerHeight() / 2) + ($drop.find('DIV.selected').outerHeight() / 2));
					} else {
						$drop.find('DIV.scroller').css('height', 'auto');
					}
					$drop.css({
						width: $elem.data('width') + 'px',
						left: $container.offset().left + 'px',
						top: $container.offset().top + $container.find('SPAN.cont01').outerHeight() + 'px'
					});
				}
				nicecontrols_unfocus($elem);
				$elem.data('setfocus', true);
				nicecontrols_setfocus($elem);
				return false;
			});
			$elem.bind("change keyup keydown", function () {
				if ($elem.is(':disabled')) {
					return false;
				}
				$container.find('SPAN.cont02').eq(0).html($elem.find('OPTION:selected').text() == '' ? '&nbsp;' : $elem.find('OPTION:selected').text());
				$drop.find('DIV.selected').removeClass('selected').attr('aria-selected', 'false');
				$('#niceselect_master_' + rand + '_active').attr('id', '');
				$drop.find('DIV DIV:not(.group)').eq($elem.attr('selectedIndex')).addClass('selected').removeClass('hover').attr('aria-selected', 'true').attr('id', 'niceselect_master_' + rand + '_active');
			}).focus(function () {
				
				if ($elem.is(':disabled')) {
					return false;
				}
				$elem.data('setfocus', false);
				$container.addClass('niceselect-focus');
			}).blur(function (event) {
				if ($elem.is(':disabled')) {
					return false;
				}
				if ($elem.data('setfocus') == true) {
					$elem.data('setfocus', false);
					nicecontrols_setfocus($elem);
				} else {
					$container.removeClass('niceselect-focus').removeClass('niceselect-open');
					$drop.removeClass('niceselect-drop-open').attr('aria-hidden', 'true');
				}
			}).keydown(function (e) {
				if ($elem.is(':disabled')) {
					return false;
				}
				if (e.which == 13 || e.which == 27) { // return or esc
					$container.removeClass('niceselect-open');
					$drop.removeClass('niceselect-drop-open').attr('aria-hidden', 'true');
				}
				if(e.which == 9) {
					$elem.data('setfocus', false);					
				}
				if (e.which == 40 || e.which == 38) { // arrow-up-down
					e.preventDefault();
					var $sel = $elem;
					var $current = $sel.find("option:selected");
					if($current.is(":last-child") && e.which==40){ var $next = $current; }
					else if($current.not(":last-child") && e.which==40){ var $next = $current.next(); }	
					else{ $next = $current.prev(); }
					$sel.blur();
					$container.addClass('niceselect-focus');
					setTimeout(function() {$sel.focus(); $sel.val($next.val()) }, 50);
				}	
			});
			$drop.find('DIV DIV:not(.group, .scroller)').each(function (a, b) {
				$(this).mousedown(function () {
					$container.removeClass('niceselect-open');
					$drop.removeClass('niceselect-drop-open');
					$elem.attr('selectedIndex', a).trigger('change').data('setfocus', true);
				}).hover(function () {
					$(this).addClass('hover');
				},
				function () {
					$(this).removeClass('hover');
				});
			});
			$drop.find('DIV.group').mousedown(function (event) {
				$elem.data('setfocus', true);
				event.stopPropagation();
				return false;
			});
			$drop.find('DIV.scroller').mousedown(function (event) {
				$elem.data('setfocus', true);
				event.stopPropagation();
				return false;
			});
		} else if($elem.tagName() == 'input' && $elem.is('[type=text]')){
			$elem.wrap('<span class="niceinput"><span class="cont01"></span></span>');
			var $container = $elem.parents('SPAN.niceinput').eq(0);
			$container.prepend('<img class="replacement" src="' + js_site_url + 'img/blank.gif" alt="" />');
			$elem.after('<span class="c c1"></span><span class="c c2"></span><span class="c c3"></span><span class="c c4"></span>');
			var $holder = $container.find('IMG.replacement');
			$holder.css({
				width: $elem.data('width') + 'px',
				height: $elem.data('height') + 'px'
			});
			$container.css({
				marginTop: $elem.data('marginTop'),
				marginRight: $elem.data('marginRight'),
				marginBottom: $elem.data('marginBottom'),
				marginLeft: $elem.data('marginLeft'),
				float: $elem.data('float'),
				width: $elem.data('width')
			}).click(function(){
				nicecontrols_unfocus($elem);
				$elem.focus();
			});
			$elem.css({
				width: $container.outerWidth() - ($container.find('SPAN.cont01').outerWidth() - $elem.outerWidth()) + 'px'
			}).focus(function(){
				nicecontrols_unfocus($elem);
				$container.addClass('niceinput-focus');
			}).blur(function(){
				$container.removeClass('niceinput-focus');
			});
		} else if($elem.tagName() == 'input' && ($elem.is('[type=checkbox]') || $elem.is('[type=radio]'))){
			var t = $elem.attr('type');
			$elem.wrap('<span class="nicecontrol nicecontrol-'+t+'" />').after('<img class="replacement" role="+t+" aria-checked="false" src="' + js_site_url + 'img/blank.gif" alt="" />');
			var $container = $elem.parents('SPAN.nicecontrol').eq(0);
			var $holder = $container.find('IMG.replacement');
			if($elem.is(':checked')){ $holder.attr('aria-checked','true').addClass('replacement-checked'); }
			$container.css({
				marginTop: $elem.data('marginTop'),
				marginRight: $elem.data('marginRight'),
				marginBottom: $elem.data('marginBottom'),
				marginLeft: $elem.data('marginLeft'),
				float: $elem.data('float'),
				width: $elem.data('width')
			});
			$elem
				.bind('updateMe',function(){
					if(t == 'radio'){
						$('INPUT[name="'+$elem.attr('name')+'"]:not(:checked)').each(function(){
							$(this).parents('SPAN.nicecontrol').eq(0).find('IMG.replacement').attr('aria-checked','false').removeClass('replacement-checked');
						});
					}
					if($elem.is(':checked')){
						$holder.attr('aria-checked','true').addClass('replacement-checked');
					} else {
						$holder.attr('aria-checked','false').removeClass('replacement-checked');
					}
				})
				.trigger('updateMe')
				.click(function(){ $(this).trigger('updateMe'); })
				.focus(function(){ $container.addClass('nicecontrol-'+t+'-focus'); })
				.blur(function(){ $container.removeClass('nicecontrol-'+t+'-focus'); })
			;
			$holder.click(function(){
				nicecontrols_unfocus($elem);
				var sName = $elem.attr("name");
				if($elem.is(':checked') && t=='checkbox'){
					$elem.attr('checked','').trigger('updateMe').focus();
				} else {
					$elem.attr('checked','checked').trigger('updateMe').focus();
				}
				return false;
			}).css({
				width: $elem.data('width') + 'px',
				height: $elem.data('height') + 'px'
			});
		} else if($elem.tagName() == 'textarea'){
			$elem.wrap('<span class="nicetextarea"><span class="cont01"></span></span>');
			var $container = $elem.parents('SPAN.nicetextarea').eq(0);
			$container.prepend('<img class="replacement" src="' + js_site_url + 'img/blank.gif" alt="" />');
			$elem.after('<span class="c c1"></span><span class="c c2"></span><span class="c c3"></span><span class="c c4"></span>');
			var $holder = $container.find('IMG.replacement');
			$holder.css({
				width: $elem.data('width') + 'px',
				height: $elem.data('height') + 'px'
			});
			$container.css({
				marginTop: $elem.data('marginTop'),
				marginRight: $elem.data('marginRight'),
				marginBottom: $elem.data('marginBottom'),
				marginLeft: $elem.data('marginLeft'),
				float: $elem.data('float'),
				width: $elem.data('width')
			}).click(function(){
				nicecontrols_unfocus($elem);
				$elem.focus();
			});
			$elem.css({
				width: $container.outerWidth() - ($container.find('SPAN.cont01').outerWidth() - $elem.outerWidth()) + 'px',
				height: $container.outerHeight() - ($container.find('SPAN.cont01').outerHeight() - $elem.outerHeight()) + 'px'
			}).focus(function(){
				$container.addClass('nicetextarea-focus');
			}).blur(function(){
				$container.removeClass('nicetextarea-focus');
			});
		}
    });
};
// workaround to get firefox focusing working
function nicecontrols_unfocus(e){ $("INPUT,SELECT,TEXTAREA").not(e).blur(); }
function nicecontrols_setfocus(r){ setTimeout(function(){ $(r).focus(); },50); }


/* Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * $LastChangedDate: 2007-07-21 18:44:59 -0500 (Sat, 21 Jul 2007) $
 * $Rev: 2446 $
 *
 * Version 2.1.1
 *
 * Modified by Exact
 *
 */

(function($){

/**
 * @name bgiframe
 * @type jQuery
 * @cat Plugins/bgiframe
 * @author Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net)
 */

$.fn.bgIframe = $.fn.bgiframe = function(s) {
	// This is only for IE6
	if ( $.browser.msie && $.browser.version=="6.0" ) {
		s = $.extend({
			top     : 'auto', // auto == .currentStyle.borderTopWidth
			left    : 'auto', // auto == .currentStyle.borderLeftWidth
			width   : 'auto', // auto == offsetWidth
			height  : 'auto', // auto == offsetHeight
			opacity : true,
			src     : 'javascript:false;'
		}, s || {});
		var prop = function(n){return n&&n.constructor==Number?n+'px':n;},
		    html = '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+
		               'style="display:block;position:absolute;z-index:-1;'+
			               (s.opacity !== false?'filter:Alpha(Opacity=\'0\');':'')+
					       'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+
					       'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+
					       'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+
					       'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+
					'"/>';
		return this.each(function() {
			if ( $('> iframe.bgiframe', this).length == 0 )
				this.insertBefore( document.createElement(html), this.firstChild );
		});
	}
	return this;
};

})(jQuery);

/* Tooltips */

(function($){ $.fn.tooltip = function(){
	return this.each(function(index) {
		var $this = $(this);
		$tooltip=$("#tooltip");
		if($tooltip.length == 0){
			var tmp = '<div id="tooltip"><div id="tooltip-start"><span class="a"></span><span class="c"></span><span class="b"></span><span class="d"></span></div>';
			tmp += '<div id="tooltip-inner"><a href="#" onclick="return hideTooltip();" class="tooltip-hide"><span>' + thickbox_close_caption + '</span></a><span id="tooltip-inner-content"></span></div>';
			tmp += '<div id="tooltip-ending"><span class="a"></span><span class="c"></span><span class="b"></span><span class="d"></span></div></div>';
			$tooltip = $(tmp);
			$('body').append($tooltip);
		}
		function displayTooltip(e){
			if( $this.attr("title") == ""){ return; }
			$tooltip.attr('class','');
			$('#tooltip-ending SPAN.d').css({ left: '0' });
			$('#tooltip-inner-content').html($this.attr("title"));
			fit = $('BODY').outerWidth() - $this.offset().left - $tooltip.outerWidth() - 15;
			viewport = window.innerWidth ? window.innerWidth : $(window).width();
			if( ($this.offset().left + $tooltip.outerWidth() - $(document).scrollLeft() - 15) > viewport){
				$tooltip.css("left", $this.offset().left + $this.outerWidth() - $tooltip.outerWidth() + 25 + 'px');
				$('#tooltip-ending SPAN.d').css({ left: $tooltip.outerWidth() - 42 + 'px' });
			} else if( fit < 0 ){
				$tooltip.css("left", $this.offset().left + fit + 'px');
				$('#tooltip-ending SPAN.d').css({ left: 0 - fit + 'px' });
			} else {
				$tooltip.css("left", $this.offset().left + 'px');
				$('#tooltip-ending SPAN.d').css({ left: '0' });
			}
			$tooltip.css("top", $this.offset().top - $tooltip.outerHeight() + 'px');
			$(document).bind("mousedown.tooltip",function(e){ hideTooltip(e); });
		}
		$this.click( function(e){
			displayTooltip(e);
			e.preventDefault();
		});
		$tooltip.bind("mousedown",function(e){ e.stopPropagation(); });
	});
}})(jQuery);

function hideTooltip(){
	$("#tooltip").css({left: '-1000px', top: '-1000px'});
	$(document).unbind("mousedown.tooltip");
	return false;
}
