/*
 * FancyBox - jQuery Plugin
 * Simple and fancy lightbox alternative
 *
 * Examples and documentation at: http://fancybox.net
 *
 * Copyright (c) 2008 - 2010 Janis Skarnelis
 * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated.
 *
 * Version: 1.3.4 (11/11/2010)
 * Requires: jQuery v1.3+
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */

;(function($) {
	var tmp, loading, overlay, wrap, outer, content, close, title, nav_left, nav_right,

		selectedIndex = 0, selectedOpts = {}, selectedArray = [], currentIndex = 0, currentOpts = {}, currentArray = [],

		ajaxLoader = null, imgPreloader = new Image(), imgRegExp = /\.(jpg|gif|png|bmp|jpeg)(.*)?$/i, swfRegExp = /[^\.]\.(swf)\s*$/i,

		loadingTimer, loadingFrame = 1,

		titleHeight = 0, titleStr = '', start_pos, final_pos, busy = false, fx = $.extend($('<div/>')[0], { prop: 0 }),

		isIE6 = $.browser.msie && $.browser.version < 7 && !window.XMLHttpRequest,

		/*
		 * Private methods 
		 */

		_abort = function() {
			loading.hide();

			imgPreloader.onerror = imgPreloader.onload = null;

			if (ajaxLoader) {
				ajaxLoader.abort();
			}

			tmp.empty();
		},

		_error = function() {
			if (false === selectedOpts.onError(selectedArray, selectedIndex, selectedOpts)) {
				loading.hide();
				busy = false;
				return;
			}

			selectedOpts.titleShow = false;

			selectedOpts.width = 'auto';
			selectedOpts.height = 'auto';

			tmp.html( '<p id="fancybox-error">The requested content cannot be loaded.<br />Please try again later.</p>' );

			_process_inline();
		},

		_start = function() {
			var obj = selectedArray[ selectedIndex ],
				href, 
				type, 
				title,
				str,
				emb,
				ret;

			_abort();

			selectedOpts = $.extend({}, $.fn.fancybox.defaults, (typeof $(obj).data('fancybox') == 'undefined' ? selectedOpts : $(obj).data('fancybox')));

			ret = selectedOpts.onStart(selectedArray, selectedIndex, selectedOpts);

			if (ret === false) {
				busy = false;
				return;
			} else if (typeof ret == 'object') {
				selectedOpts = $.extend(selectedOpts, ret);
			}

			title = selectedOpts.title || (obj.nodeName ? $(obj).attr('title') : obj.title) || '';

			if (obj.nodeName && !selectedOpts.orig) {
				selectedOpts.orig = $(obj).children("img:first").length ? $(obj).children("img:first") : $(obj);
			}

			if (title === '' && selectedOpts.orig && selectedOpts.titleFromAlt) {
				title = selectedOpts.orig.attr('alt');
			}

			href = selectedOpts.href || (obj.nodeName ? $(obj).attr('href') : obj.href) || null;

			if ((/^(?:javascript)/i).test(href) || href == '#') {
				href = null;
			}

			if (selectedOpts.type) {
				type = selectedOpts.type;

				if (!href) {
					href = selectedOpts.content;
				}

			} else if (selectedOpts.content) {
				type = 'html';

			} else if (href) {
				if (href.match(imgRegExp)) {
					type = 'image';

				} else if (href.match(swfRegExp)) {
					type = 'swf';

				} else if ($(obj).hasClass("iframe")) {
					type = 'iframe';

				} else if (href.indexOf("#") === 0) {
					type = 'inline';

				} else {
					type = 'ajax';
				}
			}

			if (!type) {
				_error();
				return;
			}

			if (type == 'inline') {
				obj	= href.substr(href.indexOf("#"));
				type = $(obj).length > 0 ? 'inline' : 'ajax';
			}

			selectedOpts.type = type;
			selectedOpts.href = href;
			selectedOpts.title = title;

			if (selectedOpts.autoDimensions) {
				if (selectedOpts.type == 'html' || selectedOpts.type == 'inline' || selectedOpts.type == 'ajax') {
					selectedOpts.width = 'auto';
					selectedOpts.height = 'auto';
				} else {
					selectedOpts.autoDimensions = false;	
				}
			}

			if (selectedOpts.modal) {
				selectedOpts.overlayShow = true;
				selectedOpts.hideOnOverlayClick = false;
				selectedOpts.hideOnContentClick = false;
				selectedOpts.enableEscapeButton = false;
				selectedOpts.showCloseButton = false;
			}

			selectedOpts.padding = parseInt(selectedOpts.padding, 10);
			selectedOpts.margin = parseInt(selectedOpts.margin, 10);

			tmp.css('padding', (selectedOpts.padding + selectedOpts.margin));

			$('.fancybox-inline-tmp').unbind('fancybox-cancel').bind('fancybox-change', function() {
				$(this).replaceWith(content.children());				
			});

			switch (type) {
				case 'html' :
					tmp.html( selectedOpts.content );
					_process_inline();
				break;

				case 'inline' :
					if ( $(obj).parent().is('#fancybox-content') === true) {
						busy = false;
						return;
					}

					$('<div class="fancybox-inline-tmp" />')
						.hide()
						.insertBefore( $(obj) )
						.bind('fancybox-cleanup', function() {
							$(this).replaceWith(content.children());
						}).bind('fancybox-cancel', function() {
							$(this).replaceWith(tmp.children());
						});

					$(obj).appendTo(tmp);

					_process_inline();
				break;

				case 'image':
					busy = false;

					$.fancybox.showActivity();

					imgPreloader = new Image();

					imgPreloader.onerror = function() {
						_error();
					};

					imgPreloader.onload = function() {
						busy = true;

						imgPreloader.onerror = imgPreloader.onload = null;

						_process_image();
					};

					imgPreloader.src = href;
				break;

				case 'swf':
					selectedOpts.scrolling = 'no';

					str = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + selectedOpts.width + '" height="' + selectedOpts.height + '"><param name="movie" value="' + href + '"></param>';
					emb = '';

					$.each(selectedOpts.swf, function(name, val) {
						str += '<param name="' + name + '" value="' + val + '"></param>';
						emb += ' ' + name + '="' + val + '"';
					});

					str += '<embed src="' + href + '" type="application/x-shockwave-flash" width="' + selectedOpts.width + '" height="' + selectedOpts.height + '"' + emb + '></embed></object>';

					tmp.html(str);

					_process_inline();
				break;

				case 'ajax':
					busy = false;

					$.fancybox.showActivity();

					selectedOpts.ajax.win = selectedOpts.ajax.success;

					ajaxLoader = $.ajax($.extend({}, selectedOpts.ajax, {
						url	: href,
						data : selectedOpts.ajax.data || {},
						error : function(XMLHttpRequest, textStatus, errorThrown) {
							if ( XMLHttpRequest.status > 0 ) {
								_error();
							}
						},
						success : function(data, textStatus, XMLHttpRequest) {
							var o = typeof XMLHttpRequest == 'object' ? XMLHttpRequest : ajaxLoader;
							if (o.status == 200) {
								if ( typeof selectedOpts.ajax.win == 'function' ) {
									ret = selectedOpts.ajax.win(href, data, textStatus, XMLHttpRequest);

									if (ret === false) {
										loading.hide();
										return;
									} else if (typeof ret == 'string' || typeof ret == 'object') {
										data = ret;
									}
								}

								tmp.html( data );
								_process_inline();
							}
						}
					}));

				break;

				case 'iframe':
					_show();
				break;
			}
		},

		_process_inline = function() {
			var
				w = selectedOpts.width,
				h = selectedOpts.height;

			if (w.toString().indexOf('%') > -1) {
				w = parseInt( ($(window).width() - (selectedOpts.margin * 2)) * parseFloat(w) / 100, 10) + 'px';

			} else {
				w = w == 'auto' ? 'auto' : w + 'px';	
			}

			if (h.toString().indexOf('%') > -1) {
				h = parseInt( ($(window).height() - (selectedOpts.margin * 2)) * parseFloat(h) / 100, 10) + 'px';

			} else {
				h = h == 'auto' ? 'auto' : h + 'px';	
			}

			tmp.wrapInner('<div style="width:' + w + ';height:' + h + ';overflow: ' + (selectedOpts.scrolling == 'auto' ? 'auto' : (selectedOpts.scrolling == 'yes' ? 'scroll' : 'hidden')) + ';position:relative;"></div>');

			selectedOpts.width = tmp.width();
			selectedOpts.height = tmp.height();

			_show();
		},

		_process_image = function() {
			selectedOpts.width = imgPreloader.width;
			selectedOpts.height = imgPreloader.height;

			$("<img />").attr({
				'id' : 'fancybox-img',
				'src' : imgPreloader.src,
				'alt' : selectedOpts.title
			}).appendTo( tmp );

			_show();
		},

		_show = function() {
			var pos, equal;

			loading.hide();

			if (wrap.is(":visible") && false === currentOpts.onCleanup(currentArray, currentIndex, currentOpts)) {
				$.event.trigger('fancybox-cancel');

				busy = false;
				return;
			}

			busy = true;

			$(content.add( overlay )).unbind();

			$(window).unbind("resize.fb scroll.fb");
			$(document).unbind('keydown.fb');

			if (wrap.is(":visible") && currentOpts.titlePosition !== 'outside') {
				wrap.css('height', wrap.height());
			}

			currentArray = selectedArray;
			currentIndex = selectedIndex;
			currentOpts = selectedOpts;

			if (currentOpts.overlayShow) {
				overlay.css({
					'background-color' : currentOpts.overlayColor,
					'opacity' : currentOpts.overlayOpacity,
					'cursor' : currentOpts.hideOnOverlayClick ? 'pointer' : 'auto',
					'height' : $(document).height()
				});

				if (!overlay.is(':visible')) {
					if (isIE6) {
						$('select:not(#fancybox-tmp select)').filter(function() {
							return this.style.visibility !== 'hidden';
						}).css({'visibility' : 'hidden'}).one('fancybox-cleanup', function() {
							this.style.visibility = 'inherit';
						});
					}

					overlay.show();
				}
			} else {
				overlay.hide();
			}

			final_pos = _get_zoom_to();

			_process_title();

			if (wrap.is(":visible")) {
				$( close.add( nav_left ).add( nav_right ) ).hide();

				pos = wrap.position(),

				start_pos = {
					top	 : pos.top,
					left : pos.left,
					width : wrap.width(),
					height : wrap.height()
				};

				equal = (start_pos.width == final_pos.width && start_pos.height == final_pos.height);

				content.fadeTo(currentOpts.changeFade, 0.3, function() {
					var finish_resizing = function() {
						content.html( tmp.contents() ).fadeTo(currentOpts.changeFade, 1, _finish);
					};

					$.event.trigger('fancybox-change');

					content
						.empty()
						.removeAttr('filter')
						.css({
							'border-width' : currentOpts.padding,
							'width'	: final_pos.width - currentOpts.padding * 2,
							'height' : selectedOpts.autoDimensions ? 'auto' : final_pos.height - titleHeight - currentOpts.padding * 2
						});

					if (equal) {
						finish_resizing();

					} else {
						fx.prop = 0;

						$(fx).animate({prop: 1}, {
							 duration : currentOpts.changeSpeed,
							 easing : currentOpts.easingChange,
							 step : _draw,
							 complete : finish_resizing
						});
					}
				});

				return;
			}

			wrap.removeAttr("style");

			content.css('border-width', currentOpts.padding);

			if (currentOpts.transitionIn == 'elastic') {
				start_pos = _get_zoom_from();

				content.html( tmp.contents() );

				wrap.show();

				if (currentOpts.opacity) {
					final_pos.opacity = 0;
				}

				fx.prop = 0;

				$(fx).animate({prop: 1}, {
					 duration : currentOpts.speedIn,
					 easing : currentOpts.easingIn,
					 step : _draw,
					 complete : _finish
				});

				return;
			}

			if (currentOpts.titlePosition == 'inside' && titleHeight > 0) {	
				title.show();	
			}

			content
				.css({
					'width' : final_pos.width - currentOpts.padding * 2,
					'height' : selectedOpts.autoDimensions ? 'auto' : final_pos.height - titleHeight - currentOpts.padding * 2
				})
				.html( tmp.contents() );

			wrap
				.css(final_pos)
				.fadeIn( currentOpts.transitionIn == 'none' ? 0 : currentOpts.speedIn, _finish );
		},

		_format_title = function(title) {
			if (title && title.length) {
				if (currentOpts.titlePosition == 'float') {
					return '<table id="fancybox-title-float-wrap" cellpadding="0" cellspacing="0"><tr><td id="fancybox-title-float-left"></td><td id="fancybox-title-float-main">' + title + '</td><td id="fancybox-title-float-right"></td></tr></table>';
				}

				return '<div id="fancybox-title-' + currentOpts.titlePosition + '">' + title + '</div>';
			}

			return false;
		},

		_process_title = function() {
			titleStr = currentOpts.title || '';
			titleHeight = 0;

			title
				.empty()
				.removeAttr('style')
				.removeClass();

			if (currentOpts.titleShow === false) {
				title.hide();
				return;
			}

			titleStr = $.isFunction(currentOpts.titleFormat) ? currentOpts.titleFormat(titleStr, currentArray, currentIndex, currentOpts) : _format_title(titleStr);

			if (!titleStr || titleStr === '') {
				title.hide();
				return;
			}

			title
				.addClass('fancybox-title-' + currentOpts.titlePosition)
				.html( titleStr )
				.appendTo( 'body' )
				.show();

			switch (currentOpts.titlePosition) {
				case 'inside':
					title
						.css({
							'width' : final_pos.width - (currentOpts.padding * 2),
							'marginLeft' : currentOpts.padding,
							'marginRight' : currentOpts.padding
						});

					titleHeight = title.outerHeight(true);

					title.appendTo( outer );

					final_pos.height += titleHeight;
				break;

				case 'over':
					title
						.css({
							'marginLeft' : currentOpts.padding,
							'width'	: final_pos.width - (currentOpts.padding * 2),
							'bottom' : currentOpts.padding
						})
						.appendTo( outer );
				break;

				case 'float':
					title
						.css('left', parseInt((title.width() - final_pos.width - 40)/ 2, 10) * -1)
						.appendTo( wrap );
				break;

				default:
					title
						.css({
							'width' : final_pos.width - (currentOpts.padding * 2),
							'paddingLeft' : currentOpts.padding,
							'paddingRight' : currentOpts.padding
						})
						.appendTo( wrap );
				break;
			}

			title.hide();
		},

		_set_navigation = function() {
			if (currentOpts.enableEscapeButton || currentOpts.enableKeyboardNav) {
				$(document).bind('keydown.fb', function(e) {
					if (e.keyCode == 27 && currentOpts.enableEscapeButton) {
						e.preventDefault();
						$.fancybox.close();

					} else if ((e.keyCode == 37 || e.keyCode == 39) && currentOpts.enableKeyboardNav && e.target.tagName !== 'INPUT' && e.target.tagName !== 'TEXTAREA' && e.target.tagName !== 'SELECT') {
						e.preventDefault();
						$.fancybox[ e.keyCode == 37 ? 'prev' : 'next']();
					}
				});
			}

			if (!currentOpts.showNavArrows) { 
				nav_left.hide();
				nav_right.hide();
				return;
			}

			if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex !== 0) {
				nav_left.show();
			}

			if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex != (currentArray.length -1)) {
				nav_right.show();
			}
		},

		_finish = function () {
			if (!$.support.opacity) {
				content.get(0).style.removeAttribute('filter');
				wrap.get(0).style.removeAttribute('filter');
			}

			if (selectedOpts.autoDimensions) {
				content.css('height', 'auto');
			}

			wrap.css('height', 'auto');

			if (titleStr && titleStr.length) {
				title.show();
			}

			if (currentOpts.showCloseButton) {
				close.show();
			}

			_set_navigation();
	
			if (currentOpts.hideOnContentClick)	{
				content.bind('click', $.fancybox.close);
			}

			if (currentOpts.hideOnOverlayClick)	{
				overlay.bind('click', $.fancybox.close);
			}

			$(window).bind("resize.fb", $.fancybox.resize);

			if (currentOpts.centerOnScroll) {
				$(window).bind("scroll.fb", $.fancybox.center);
			}

			if (currentOpts.type == 'iframe') {
				$('<iframe id="fancybox-frame" name="fancybox-frame' + new Date().getTime() + '" frameborder="0" hspace="0" ' + ($.browser.msie ? 'allowtransparency="true""' : '') + ' scrolling="' + selectedOpts.scrolling + '" src="' + currentOpts.href + '"></iframe>').appendTo(content);
			}

			wrap.show();

			busy = false;

			$.fancybox.center();

			currentOpts.onComplete(currentArray, currentIndex, currentOpts);

			_preload_images();
		},

		_preload_images = function() {
			var href, 
				objNext;

			if ((currentArray.length -1) > currentIndex) {
				href = currentArray[ currentIndex + 1 ].href;

				if (typeof href !== 'undefined' && href.match(imgRegExp)) {
					objNext = new Image();
					objNext.src = href;
				}
			}

			if (currentIndex > 0) {
				href = currentArray[ currentIndex - 1 ].href;

				if (typeof href !== 'undefined' && href.match(imgRegExp)) {
					objNext = new Image();
					objNext.src = href;
				}
			}
		},

		_draw = function(pos) {
			var dim = {
				width : parseInt(start_pos.width + (final_pos.width - start_pos.width) * pos, 10),
				height : parseInt(start_pos.height + (final_pos.height - start_pos.height) * pos, 10),

				top : parseInt(start_pos.top + (final_pos.top - start_pos.top) * pos, 10),
				left : parseInt(start_pos.left + (final_pos.left - start_pos.left) * pos, 10)
			};

			if (typeof final_pos.opacity !== 'undefined') {
				dim.opacity = pos < 0.5 ? 0.5 : pos;
			}

			wrap.css(dim);

			content.css({
				'width' : dim.width - currentOpts.padding * 2,
				'height' : dim.height - (titleHeight * pos) - currentOpts.padding * 2
			});
		},

		_get_viewport = function() {
			return [
				$(window).width() - (currentOpts.margin * 2),
				$(window).height() - (currentOpts.margin * 2),
				$(document).scrollLeft() + currentOpts.margin,
				$(document).scrollTop() + currentOpts.margin
			];
		},

		_get_zoom_to = function () {
			var view = _get_viewport(),
				to = {},
				resize = currentOpts.autoScale,
				double_padding = currentOpts.padding * 2,
				ratio;

			if (currentOpts.width.toString().indexOf('%') > -1) {
				to.width = parseInt((view[0] * parseFloat(currentOpts.width)) / 100, 10);
			} else {
				to.width = currentOpts.width + double_padding;
			}

			if (currentOpts.height.toString().indexOf('%') > -1) {
				to.height = parseInt((view[1] * parseFloat(currentOpts.height)) / 100, 10);
			} else {
				to.height = currentOpts.height + double_padding;
			}

			if (resize && (to.width > view[0] || to.height > view[1])) {
				if (selectedOpts.type == 'image' || selectedOpts.type == 'swf') {
					ratio = (currentOpts.width ) / (currentOpts.height );

					if ((to.width ) > view[0]) {
						to.width = view[0];
						to.height = parseInt(((to.width - double_padding) / ratio) + double_padding, 10);
					}

					if ((to.height) > view[1]) {
						to.height = view[1];
						to.width = parseInt(((to.height - double_padding) * ratio) + double_padding, 10);
					}

				} else {
					to.width = Math.min(to.width, view[0]);
					to.height = Math.min(to.height, view[1]);
				}
			}

			to.top = parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - to.height - 40) * 0.5)), 10);
			to.left = parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - to.width - 40) * 0.5)), 10);

			return to;
		},

		_get_obj_pos = function(obj) {
			var pos = obj.offset();

			pos.top += parseInt( obj.css('paddingTop'), 10 ) || 0;
			pos.left += parseInt( obj.css('paddingLeft'), 10 ) || 0;

			pos.top += parseInt( obj.css('border-top-width'), 10 ) || 0;
			pos.left += parseInt( obj.css('border-left-width'), 10 ) || 0;

			pos.width = obj.width();
			pos.height = obj.height();

			return pos;
		},

		_get_zoom_from = function() {
			var orig = selectedOpts.orig ? $(selectedOpts.orig) : false,
				from = {},
				pos,
				view;

			if (orig && orig.length) {
				pos = _get_obj_pos(orig);

				from = {
					width : pos.width + (currentOpts.padding * 2),
					height : pos.height + (currentOpts.padding * 2),
					top	: pos.top - currentOpts.padding - 20,
					left : pos.left - currentOpts.padding - 20
				};

			} else {
				view = _get_viewport();

				from = {
					width : currentOpts.padding * 2,
					height : currentOpts.padding * 2,
					top	: parseInt(view[3] + view[1] * 0.5, 10),
					left : parseInt(view[2] + view[0] * 0.5, 10)
				};
			}

			return from;
		},

		_animate_loading = function() {
			if (!loading.is(':visible')){
				clearInterval(loadingTimer);
				return;
			}

			$('div', loading).css('top', (loadingFrame * -40) + 'px');

			loadingFrame = (loadingFrame + 1) % 12;
		};

	/*
	 * Public methods 
	 */

	$.fn.fancybox = function(options) {
		if (!$(this).length) {
			return this;
		}

		$(this)
			.data('fancybox', $.extend({}, options, ($.metadata ? $(this).metadata() : {})))
			.unbind('click.fb')
			.bind('click.fb', function(e) {
				e.preventDefault();

				if (busy) {
					return;
				}

				busy = true;

				$(this).blur();

				selectedArray = [];
				selectedIndex = 0;

				var rel = $(this).attr('rel') || '';

				if (!rel || rel == '' || rel === 'nofollow') {
					selectedArray.push(this);

				} else {
					selectedArray = $("a[rel=" + rel + "], area[rel=" + rel + "]");
					selectedIndex = selectedArray.index( this );
				}

				_start();

				return;
			});

		return this;
	};

	$.fancybox = function(obj) {
		var opts;

		if (busy) {
			return;
		}

		busy = true;
		opts = typeof arguments[1] !== 'undefined' ? arguments[1] : {};

		selectedArray = [];
		selectedIndex = parseInt(opts.index, 10) || 0;

		if ($.isArray(obj)) {
			for (var i = 0, j = obj.length; i < j; i++) {
				if (typeof obj[i] == 'object') {
					$(obj[i]).data('fancybox', $.extend({}, opts, obj[i]));
				} else {
					obj[i] = $({}).data('fancybox', $.extend({content : obj[i]}, opts));
				}
			}

			selectedArray = jQuery.merge(selectedArray, obj);

		} else {
			if (typeof obj == 'object') {
				$(obj).data('fancybox', $.extend({}, opts, obj));
			} else {
				obj = $({}).data('fancybox', $.extend({content : obj}, opts));
			}

			selectedArray.push(obj);
		}

		if (selectedIndex > selectedArray.length || selectedIndex < 0) {
			selectedIndex = 0;
		}

		_start();
	};

	$.fancybox.showActivity = function() {
		clearInterval(loadingTimer);

		loading.show();
		loadingTimer = setInterval(_animate_loading, 66);
	};

	$.fancybox.hideActivity = function() {
		loading.hide();
	};

	$.fancybox.next = function() {
		return $.fancybox.pos( currentIndex + 1);
	};

	$.fancybox.prev = function() {
		return $.fancybox.pos( currentIndex - 1);
	};

	$.fancybox.pos = function(pos) {
		if (busy) {
			return;
		}

		pos = parseInt(pos);

		selectedArray = currentArray;

		if (pos > -1 && pos < currentArray.length) {
			selectedIndex = pos;
			_start();

		} else if (currentOpts.cyclic && currentArray.length > 1) {
			selectedIndex = pos >= currentArray.length ? 0 : currentArray.length - 1;
			_start();
		}

		return;
	};

	$.fancybox.cancel = function() {
		if (busy) {
			return;
		}

		busy = true;

		$.event.trigger('fancybox-cancel');

		_abort();

		selectedOpts.onCancel(selectedArray, selectedIndex, selectedOpts);

		busy = false;
	};

	// Note: within an iframe use - parent.$.fancybox.close();
	$.fancybox.close = function() {
		if (busy || wrap.is(':hidden')) {
			return;
		}

		busy = true;

		if (currentOpts && false === currentOpts.onCleanup(currentArray, currentIndex, currentOpts)) {
			busy = false;
			return;
		}

		_abort();

		$(close.add( nav_left ).add( nav_right )).hide();

		$(content.add( overlay )).unbind();

		$(window).unbind("resize.fb scroll.fb");
		$(document).unbind('keydown.fb');

		content.find('iframe').attr('src', isIE6 && /^https/i.test(window.location.href || '') ? 'javascript:void(false)' : 'about:blank');

		if (currentOpts.titlePosition !== 'inside') {
			title.empty();
		}

		wrap.stop();

		function _cleanup() {
			overlay.fadeOut('fast');

			title.empty().hide();
			wrap.hide();

			$.event.trigger('fancybox-cleanup');

			content.empty();

			currentOpts.onClosed(currentArray, currentIndex, currentOpts);

			currentArray = selectedOpts	= [];
			currentIndex = selectedIndex = 0;
			currentOpts = selectedOpts	= {};

			busy = false;
		}

		if (currentOpts.transitionOut == 'elastic') {
			start_pos = _get_zoom_from();

			var pos = wrap.position();

			final_pos = {
				top	 : pos.top ,
				left : pos.left,
				width :	wrap.width(),
				height : wrap.height()
			};

			if (currentOpts.opacity) {
				final_pos.opacity = 1;
			}

			title.empty().hide();

			fx.prop = 1;

			$(fx).animate({ prop: 0 }, {
				 duration : currentOpts.speedOut,
				 easing : currentOpts.easingOut,
				 step : _draw,
				 complete : _cleanup
			});

		} else {
			wrap.fadeOut( currentOpts.transitionOut == 'none' ? 0 : currentOpts.speedOut, _cleanup);
		}
	};

	$.fancybox.resize = function() {
		if (overlay.is(':visible')) {
			overlay.css('height', $(document).height());
		}

		$.fancybox.center(true);
	};

	$.fancybox.center = function() {
		var view, align;

		if (busy) {
			return;	
		}

		align = arguments[0] === true ? 1 : 0;
		view = _get_viewport();

		if (!align && (wrap.width() > view[0] || wrap.height() > view[1])) {
			return;	
		}

		wrap
			.stop()
			.animate({
				'top' : parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - content.height() - 40) * 0.5) - currentOpts.padding)),
				'left' : parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - content.width() - 40) * 0.5) - currentOpts.padding))
			}, typeof arguments[0] == 'number' ? arguments[0] : 200);
	};

	$.fancybox.init = function() {
		if ($("#fancybox-wrap").length) {
			return;
		}

		$('body').append(
			tmp	= $('<div id="fancybox-tmp"></div>'),
			loading	= $('<div id="fancybox-loading"><div></div></div>'),
			overlay	= $('<div id="fancybox-overlay"></div>'),
			wrap = $('<div id="fancybox-wrap"></div>')
		);

		outer = $('<div id="fancybox-outer"></div>')
			.append('<div class="fancybox-bg" id="fancybox-bg-n"></div><div class="fancybox-bg" id="fancybox-bg-ne"></div><div class="fancybox-bg" id="fancybox-bg-e"></div><div class="fancybox-bg" id="fancybox-bg-se"></div><div class="fancybox-bg" id="fancybox-bg-s"></div><div class="fancybox-bg" id="fancybox-bg-sw"></div><div class="fancybox-bg" id="fancybox-bg-w"></div><div class="fancybox-bg" id="fancybox-bg-nw"></div>')
			.appendTo( wrap );

		outer.append(
			content = $('<div id="fancybox-content"></div>'),
			close = $('<a id="fancybox-close"></a>'),
			title = $('<div id="fancybox-title"></div>'),

			nav_left = $('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'),
			nav_right = $('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>')
		);

		close.click($.fancybox.close);
		loading.click($.fancybox.cancel);

		nav_left.click(function(e) {
			e.preventDefault();
			$.fancybox.prev();
		});

		nav_right.click(function(e) {
			e.preventDefault();
			$.fancybox.next();
		});

		if ($.fn.mousewheel) {
			wrap.bind('mousewheel.fb', function(e, delta) {
				if (busy) {
					e.preventDefault();

				} else if ($(e.target).get(0).clientHeight == 0 || $(e.target).get(0).scrollHeight === $(e.target).get(0).clientHeight) {
					e.preventDefault();
					$.fancybox[ delta > 0 ? 'prev' : 'next']();
				}
			});
		}

		if (!$.support.opacity) {
			wrap.addClass('fancybox-ie');
		}

		if (isIE6) {
			loading.addClass('fancybox-ie6');
			wrap.addClass('fancybox-ie6');

			$('<iframe id="fancybox-hide-sel-frame" src="' + (/^https/i.test(window.location.href || '') ? 'javascript:void(false)' : 'about:blank' ) + '" scrolling="no" border="0" frameborder="0" tabindex="-1"></iframe>').prependTo(outer);
		}
	};

	$.fn.fancybox.defaults = {
		padding : 10,
		margin : 40,
		opacity : false,
		modal : false,
		cyclic : false,
		scrolling : 'auto',	// 'auto', 'yes' or 'no'

		width : 560,
		height : 340,

		autoScale : true,
		autoDimensions : true,
		centerOnScroll : false,

		ajax : {},
		swf : { wmode: 'transparent' },

		hideOnOverlayClick : true,
		hideOnContentClick : false,

		overlayShow : true,
		overlayOpacity : 0.7,
		overlayColor : '#777',

		titleShow : true,
		titlePosition : 'float', // 'float', 'outside', 'inside' or 'over'
		titleFormat : null,
		titleFromAlt : false,

		transitionIn : 'fade', // 'elastic', 'fade' or 'none'
		transitionOut : 'fade', // 'elastic', 'fade' or 'none'

		speedIn : 300,
		speedOut : 300,

		changeSpeed : 300,
		changeFade : 'fast',

		easingIn : 'swing',
		easingOut : 'swing',

		showCloseButton	 : true,
		showNavArrows : true,
		enableEscapeButton : true,
		enableKeyboardNav : true,

		onStart : function(){},
		onCancel : function(){},
		onComplete : function(){},
		onCleanup : function(){},
		onClosed : function(){},
		onError : function(){}
	};

	$(document).ready(function() {
		$.fancybox.init();
	});

})(jQuery);var operator_search_resultID = 0;
var rotateNews = function() {
	$notr = true;
	var n = $('#promo-block-news > a.on').next();
		if(n.is('a') && !n.hasClass('control')) n.trigger('click');
	else
	  $('#promo-block-news > a:first').trigger('click');
}
var $tg = false;
var ie6 = navigator.appVersion.match(/MSIE 6/);
/* top submenu variables */
var $submenuDefault;
var $request;		
var $submenuDefault;
var ajaxHistoryEnabled = true;
var hash = '';
var oldhash = '';
$(document).ready(function() {
	var current_page = self.document.location.hash;

	// DEFAULT

	$.makeFormArray = function (obj)
	{
		var a = new Array();
		for(t=0; t < obj.length; t++)
		{
			value = $(obj[t]).val();
			name = 	$(obj[t]).attr('name');
			if(!$(obj[t]).attr("disabled"))
			{
				switch($(obj[t]).attr("type")){
					case 'checkbox':
						if($(obj[t]).attr("checked"))
							a.push({name: name, value: value});
						break;
					default:
						a.push({name: name, value: value});
				}
			}
		}

		a.push({name: 'ajax_request', value: 1});

		return a;
	}

	$('.validate-form').submit(function() {
		var send = true;
		var error_message = '';
		var form = this;
		$('#error_form_message_div').remove();
		
		$(this).find('input').removeClass('error_input');
		
		$(this).find('div.error_block').remove();

		$(this).find('.required').each(function(i){
			if(($(this).attr("value")=='' || $(this).attr("value")=='http://') && !$(this).attr("disabled") || ($(this).attr("value")==$(this).attr('defaultValue') && !$(this).hasClass('nodef'))) {
				$(this).addClass('error_input');
				$error_message = $('<div class="error_block">' + messages.required + '</div>');				
				if($(form).hasClass('send_friend_form'))  $error_message.insertAfter(this); else $error_message.insertBefore(this);
				send = false;
			}
		});

		re_email = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2,}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/i;

		$(this).find('.validate-email').each(function() {
			if(!$(this).hasClass('error_input') && !$(this).attr("value").match(re_email)) {
				$(this).addClass('error_input');
				$error_message = $('<div class="error_block">' + messages.email + '</div>');
				if($(form).hasClass('send_friend_form'))  $error_message.insertAfter(this); else $error_message.insertBefore(this);
				send = false;
			}
		});
		
		$(this).find('#hashFriend').each(function() {
			
		});

		if(!send) {		   
		} else {
		   message = $('<div class="wait"   id="error_form_message_div"  style="display: none;">'+ message_loading +'</div>');
		   if($(form).hasClass('send_friend_form'))
				message.prependTo($(form).find('div.content'))   
		   else
			   message.insertBefore(this);

		   message.fadeIn();

		   if($(this).hasClass('ajax-post')) {

				send = false;

				form_array = $(this).map(function(){ return $.makeFormArray(this.elements); });

				var forma = $(this);		
	
				$.ajax({
				type: "POST",
				url: $(this).attr('action'),
				dataType: 'json',
				data: form_array,

				success: function(data) {
					if(data.result!= undefined && data.result) {
						if(data.redirect) {
							window.location.href = data.redirect;
						} else if(data.refresh) {
							window.location.href = window.location.href.replace(/\#.*$/, '');
						} else if(data.send) {
							send = true;
						}else {
							if(data.reload_link) {
								$('#' +$('#'+data.reload_link).attr('rel')).load($('#'+data.reload_link).attr('href') + '?ajax_request=1');
							} else {
								$(forma).map(function(){ return this.reset(); });
							}
						}
						if(data.success_element) {
							$('#forma-elements').hide();
							$(data.success_element).fadeIn();
							$('#error_form_message_div').remove();
						} else if($('#feedback-ok').is('div')) {
							forma.hide();
							$('#feedback-ok').fadeIn();
							$('#error_form_message_div').remove();
						} else if(data.message) {
							$('#error_form_message_div').removeClass('wait');
							$('#error_form_message_div').addClass('successful');
							$('#error_form_message_div').html(data.message);
							$('#error_form_message_div').show();

							setTimeout(function() {
								$('#error_form_message_div').slideUp();
							}, 7000);


						}
						if (data.script) {
							eval (data.script);
						}
					} else if(data.result == undefined) {
						$('#error_form_message_div').removeClass('wait');
						$('#error_form_message_div').addClass('error');
						$('#error_form_message_div').html(messages.form_not_send);
					} else {
						error_message = data.message;
						$('#error_form_message_div').removeClass('wait');
						$('#error_form_message_div').addClass('error');
						$('#error_form_message_div').html(data.message);

					}
				},
				error: function() {
					$('#error_form_message_div').removeClass('wait');
					$('#error_form_message_div').addClass('error');					
					$('#error_form_message_div').html(messages.form_not_send);
				}

				});
				

		   }
		}
		return send;

	});

	$('.mok-button').click(function(){		
		var f = $('#mok-form');		
		if(f.is(':visible'))
			f.hide();
		else {			
			f.show();
		}

		return false;
	});

	$('.sms-button').click(function(){		
		var f = $('#sms-form');		
		if(f.is(':visible'))
			f.hide();
		else {			
			f.show();
		}

		return false;
	});


/* -------------------------- VIESABONĒŠANA ----------------------- */

	$('#operator-region').click(function(e){
		var $t = $(e.target);
		if ($t.is('a') && !$t.hasClass('on')) {
			operator_search_resultID = 0;
			var regionID = $t.attr('rel');
			$(this).find('a.on').removeClass('on');
			$t.addClass('on');
			$('#operator-countries').html('<center><img src="/images/ajax-loader.gif" /></center>');
			$('#operator-info').html('');
			$('#operator-info2').html('');
			$('#operator-countries').load('/'+lng+'/operators_cities.inc.php?regionID=' + regionID);
		}
		return false;
	});	

	function updateOperatorList(countryID) {		
		$('#operator-info').load('/'+lng+'/operators_info.inc.php?countryID=' + countryID, null, function(){
			$('span.op-icons > a').hover(function(){			
				$(this).find('div').css('display','inline');
			}, function(){
				$(this).find('div').hide();
			});
		});
	}

	function updateOperatorList2(countryID, subID) {		
		$('#operator-info2').load('/'+lng+'/operators_info.inc.php?countryID=' + countryID + '&subID=' + subID, null, function(){
			$('#operator-info2').show();
			$('span.op-icons > a').hover(function(){			
				$(this).find('div').show();
			}, function(){
				$(this).find('div').hide();
			});
		});
	}

	function updateCountryList(countryIDs) {	
		$('#operator-countries').html('<center><img src="/images/ajax-loader.gif" /></center>');
		$('#operator-info').html('');
		$('#operator-info2').html('');
		$('#operator-countries').load('/'+lng+'/operators_cities.inc.php?countryIDs=' + countryIDs);
	}

	$('#operator-search').submit(function(){
		$('#operator-countries').html('');
		$('#operator-info2').html('');
		$('#operator-region  > a').removeClass('on');
		$('#operator-info').html('<center><img src="/images/ajax-loader.gif" /></center>');
		$.ajax({
				type: 'GET', 
				url: '/'+lng+'/operators_search.inc.php', 
				dataType: 'json', 
				data: 'search=' + encodeURIComponent($('#operator-searchterm').val()),
				success: function(result) {
					$('#operator-countries').html('<div class="search-header">' + messages.search_results + '</div>');
					if (result.result == 1 && result.countryIDs.length > 0) {
						if (result.countryIDs.length == 1) {
							updateOperatorList(result.countryIDs);
							operator_search_resultID = result.countryIDs;
						} else {
							updateCountryList(result.countryIDs);
						}
					} else {
					  $('#operator-info').html(messages.no_such_country);
					}
				}
			});
			return false;																									  
	});


	$('#operator-countries').click(function(e){
		var $t = $(e.target);
		if($t.is('a')) {			
			$('#operator-info2').html('');
			$(this).find('a.on').removeClass('on');
			$t.addClass('on');
			var countryID = operator_search_resultID = $t.attr('rel');
			$('#operator-info').html('<center><img src="/images/ajax-loader.gif" /></center>');
			updateOperatorList(countryID);		
			return false;
		}
	});

	$('#operator-info').click(function(e){
		var $t = $(e.target);
		if($t.is('a.reg')) {
			$(this).find('a.reg').removeClass('on');
			$t.addClass('on');
			var countryID =   operator_search_resultID ? operator_search_resultID : $('#operator-countries > a.on:first').attr('rel');
			var subID = $t.attr('rel');
			$('#operator-info2').html('<center><img src="/images/ajax-loader.gif" /></center>');
			updateOperatorList2(countryID, subID);		
			return false;
		}
	});

/* ---------------------- --------------------------- */

	$('.popblock').click(function(e){
		var $t = $(e.target);
		if($t.is('h2 a')  || $t.is('img.timg')) {
			if($t.is('img.timg')) $t = $t.parent();
			var $b = $(this).find('.box')
			if($b.is(':visible')) {
				$t.removeClass('on');
				$b.slideUp();
			} else {
				$t.addClass('on');
				$b.slideDown();
			}
			return false;
		} else if($t.is('h3 a') || $t.is('img.qimg')) {
			if($t.is('img.qimg')) $t = $t.parent();
			var $b = $(this).find('.box')
			if($b.is(':visible')) {
				$t.removeClass('on');
				$b.slideUp();
			} else {
				$t.addClass('on');
				$b.slideDown();
			}
			return false;
		}
	});

	$('.news_thumb > li').hover(function(){
		$(this).addClass('on');
	}, function(){
		$(this).removeClass('on');
	});

	$('.print > a').click(function() {
		window.print();
		return false;
	});

	if($('#promo-block-news').is('div')) {
		$tg = window.setTimeout('rotateNews()', 10000);
		
	}

	$('#promo-block-news').click(function(e){	
		var $t = $(e.target);
		if($t.is('a') && !$t.hasClass('control')) {				
			if(!$t.hasClass('on')) {		
				var c = parseInt($t.html());
				if($('.news-block-ab:animated').length==0) {						
					$('.news-block-ab').hide();
					$('.news-block-ab:nth-child(' + (c+1) + ')').fadeIn();					
					$(this).find('a').removeClass('on');					
					$t.addClass('on');
					window.clearTimeout($tg);
					$tg = window.setTimeout('rotateNews()', 10000);
					$('#promo-block-news .control').removeClass ('resume');
					$('#promo-block-news .control').addClass ('pause');
				}
			}		
		}
		else if ($t.hasClass('pause')) {
			$t.removeClass ('pause');
			$t.addClass ('resume');
			clearTimeout($tg);
		}
		else if ($t.hasClass('resume')) {
			$t.removeClass ('resume');
			$t.addClass ('pause');
			$tg = window.setTimeout('rotateNews()', 0);
		}
		return false;
	});

	$('.google-map-box').click(function(){
			
		var pos = $(this).position();
		var link = $(this).attr('href');
		
		$('#google-map-div').remove();
		
		var $map = $('<div id="google-map-div" class="google-map-outter"><div class="close-map-div"><a href="#close" id="close-map-div-l" class="close-map-div-link"></a></div><div class="google-map"><div class="google-loading"><iframe id="iframe-map"  scrolling="no" frameborder="0" marginwidth="0" marginheight="0" style="display: none; padding: 0px; margin: 0px; width: 493px; height: 394px;"></iframe></div><div class="google-map-link-popup" ><a href="' + $(this).attr('href') + '">' + messages.view_full_map + '</a></div></div></div>');
		
		$map.css({top: (pos.top-260), left: pos.left+100});

		$map.insertAfter(this);
		$('#close-map-div-l').click(function(){	$('#google-map-div').remove(); return false; });
		$map.fadeIn();
		
		var $iframe  = $('#iframe-map');
		$iframe.attr('src', link.replace(/google\-map/, 'popup/google-map'));
		$iframe.fadeIn();
		
		return false;
	});
	

	$('#submit-feedback').click(function(){
		$('#feedback-form').trigger('submit');
		return false;
	});

	$('.ext-rate').mousemove(function(e) {
		$d = $(this).next('div.rate-extended');
		$d.show();
		$d.css({top: (e.pageY+10), left: (e.pageX+10)});
		$(this).css({cursor: 'help'});	
	});

	$('.ext-rate').mouseout(function(e) {
		$(this).next('div.rate-extended').hide();
		$(this).css({cursor: 'auto'});	
	});

	$('.rate-row').click(function(e) {
		var $t = $(e.target);
		if($t.is('a')) {
			
			var $bg = $(this).next('.country-row');

			if($bg.is(':visible')) { 
				$(this).removeClass('on bg');
				$bg.hide();
			} else {
				$(this).addClass('on bg');
				$bg.show();
			}
		}
	});

	$('.print').click(function() {
		window.print();
		return false;
	});


	$('#sms-okarte-main-link').click(function() {
		$(this).parent().addClass('on');
		$('#my-okarte-main-link').parent().removeClass('on');
		$('#my-okarte-main').hide();
		$('#sms-okarte-main').show();
		return false;
	});

	$('#my-okarte-main-link').click(function() {
		$(this).parent().addClass('on');
		$('#sms-okarte-main-link').parent().removeClass('on');
		$('#sms-okarte-main').hide();
		$('#my-okarte-main').show();
		return false;
	});

	$('#main-link-left').hover(function(){		 
	}, function(){

	});

	$('#toogle-feedback-form').click(function(){
		$('#feedback-ok').hide();
		$('#feedback-form').slideDown();
		return false;
	});


	$an = $('#anima');
	$('#motion-left').click(function() {
		if (lng == 'en') {
			document.location = '/eng/okartes_draugi';
		} else {
			if (snow_showed) {
				if (!ie6) $('.snowdivsome').hide();
			}
			document.location = 'http://talanti.okarte.lv/' + lng + '/'; return false;
			$('#flash-block').hide();
			$an.animate({'left': '0%'}, 600, function(){ 
			/* filter validator obtain*/
			$('.friend .arrow img').css ('filter','progid:DXImageTransform.Microsoft.AlphaImageLoader(src="/images/mcm_arrow_back.png")');
			pulsate ($('.motion-back'),'slow',3); 
			});	
		}
		return false;
	});
	
	if (lng == 'en') {
		$('#motion-left').hover (function() {
			$('#motion-left .pic img').attr('src', '/images/design_new/index_promo_friend_logo_en_big.png');
			$('#motion-left .pic img').animate({height: 155, width: 155, top: '50%', left: '50%' }, {queue:false, duration:300});
		}, 
		function() {
			$('#motion-left .pic img').attr('src', '/images/design_new/index_promo_friend_logo_en.png');
			$('#motion-left .pic img').animate({height: 143, width: 143, top: '50%', left: '50%' }, {queue:false, duration:300});
		});
		$('#motion-right').hover (function() {
			$('#motion-right .pic img').attr('src', '/images/design_new/index_promo_int_tel_big2.png?2');
			$('#motion-right .pic img').animate({height: 155, width: 155, top: '50%', left: '50%' }, {queue:false, duration:300});
		}, 
		function() {
			$('#motion-right .pic img').attr('src', '/images/design_new/index_promo_int_tel2.png?2');
			$('#motion-right .pic img').animate({height: 143, width: 143, top: '50%', left: '50%' }, {queue:false, duration:300});
		});
	} else {
		$('#motion-left').hover (function() {
			$('#motion-left .pic img').attr('src', '/images/design_new/index_promo_talanti_big_' + 'lv' + '.png');
			$('#motion-left .pic img').animate({height: 155, width: 155, top: '50%', left: '50%' }, {queue:false, duration:300});
		}, 
		function() {
			$('#motion-left .pic img').attr('src', '/images/design_new/index_promo_talanti_' + 'lv' + '.png');
			$('#motion-left .pic img').animate({height: 143, width: 143, top: '50%', left: '50%' }, {queue:false, duration:300});
		});
		$('#motion-right').hover (function() {
			$('#motion-right .pic img').attr('src', '/images/design_new/mazcenas_ik_big_def_' + lng + '.png?2');
			$('#motion-right .pic img').animate({height: 191, width: 237}, {queue:false, duration:300});
		}, 
		function() {
			$('#motion-right .pic img').attr('src', '/images/design_new/mazcenas_ik_def_' + lng + '.png?2');
			$('#motion-right .pic img').animate({height: 171, width: 212}, {queue:false, duration:300});
		});
	}
	

	$('#motion-right').click(function() {
		if (snow_showed) {
			$('.discount .arrow').css('padding-top', '112px');
			if (!ie6) $('.snowdivsome').hide();
		}
		$('#flash-block').hide();
		$an.animate({'left': ie6 ? '-200.2%' : '-200%'},  600, function(){ 
		/* filter validator obtain*/
		pulsate ($('.motion-back'),'slow',3); 
		});				
		return false;
	});

	$('.motion-back').click(function() {
		if (snow_showed) {
			$an.animate({'left': '-100%'}, 600, function(){$('#flash-block').show();if (!ie6 && snow_showed==true) $('.snowdivsome').show();});
		}
		else {
			$an.animate({'left': '-100%'}, 600, function(){$('#flash-block').show()});		
		}
		return false;
	});
	
	if($('#ok-widget').is('ul')) {
		
		var $v = $('#ok-widget');

		var activated = $v.parent().hasClass('inner') ? 0 : 1;
			
		$v.accordionScada({ 
							header: '#titlex',  
							content: '.content', 
							/*active: activated,	*/						
							beforeEvent: function (event, ui) {
								var new_block = ui.newBlock;
								var old_block = ui.oldBlock;
								
								if(new_block.hasClass('renew'))
									new_block.addClass('renewon');
								else
									if(old_block) old_block.removeClass('renewon');

							},
							afterEvent: function (event, ui) {
								clearSmsForm();
								var new_block = ui.newBlock;
								var old_block = ui.oldBlock;								
								new_block.addClass('on');
								if(old_block && old_block.attr('class')!=new_block.attr('class')) old_block.removeClass('on');
							},
							animatedClose: 0
						});	
		/* papildinat widget submit */
		$('#btntalak').click(function(){
			$('#frmpapild').trigger('submit');
			return false;
		});
	}
	
	$('.sendToFriend a').click(function(){
		$('#TPane1').fadeOut();
		
		var $f = $('#send-friend-form');
		if ($(this).hasClass('portation')) {
			$('h2', $f).html (lang_arr['sendvideotofriend']);
			$('form', $f).append ('<input id="subact" name="subact" type="hidden" value="portation" />');
		} else {
			$('h2', $f).html (lang_arr['sendtofriend']);
			$('#subact', $f).remove();
		}
		if($f.is(':visible'))
			$f.hide();
		else
			$f.fadeIn();
		$('#talkbutton').parent('a').animate({'opacity': '1'}, 200);
		$('#talkbutton').parent('a').css('visibility','visible');
		RegenerateCapcha ($('#TPane1 .capchax img'));
		return false; 
	});

	$('.close-send-friend').click(function(){
		$('#send-friend-form').hide();
		$('#forma-elements').show();
		$('#send-ok').hide();
		return false;
	});
	
	/* Social sharing */
	$('#talkbutton').parent('a').click(function() {
		$pos = $('#talkbutton').position();
		$('#TPane1').css({'left': ($pos.left-27)+'px', 'top': ($pos.top-3)+'px'}).fadeIn();
		//$(this).css('visibility','hidden');
		$(this).animate({'opacity': '0'}, 200);
		return false;
	});
	$('#TPane1 .close').click ( function () {
		//$('#talkbutton').parent('a').css('visibility','visible');
		$('#talkbutton').parent('a').animate({'opacity': '1'}, 200);
		$('#TPane1').fadeOut();
		$('#send-ok, #error_form_message_div, #TPane2 .error_block').hide();
		return false;
	});
	
		
	/* script expander for tarrifs table. universal */
	if ($('.init').length>0) {
		$('.init').click (function () {
			$table = $(this).parents ('table');
			$('.hide').toggleClass('none');
			// toggleClass doesnt works correct >
			if ($(this).parents('tr').hasClass ('more')) {	
				$(this).parents('tr').removeClass ('more');
				$(this).html ('');
			} else {
				$(this).parents('tr').addClass ('more');
				$(this).html ($(this).attr('rel'));
			}			
			return false;
		});
	}
	
	stripe_tables('table');

	if(!($.browser.msie && $.browser.version.substring(0,1) < 7)) {
		if ($(window).width() > 999) {
			if (lng == 'ru') {
				to_top = 'Наверх';
			} else if (lng == 'en') {
				to_top = 'Top';
			} else {
				to_top = 'Uz augšu';
			}
			$('body').append('<a href="#" id="to_top" title="'+to_top+'">'+to_top+'</a>');
			$('#to_top').topLink  ({
				min: 200,
				fadeSpeed: 500
			});
			$('#to_top').click(function() {				
				$('html,body').animate({scrollTop: 0}, 1000);
				return false;
			});
		}
	}
	
	// top submenu ajax script
	if ($('ul.top-submenu').length>0) {
		if ($('ul.top-submenu li.active').length > 0 ) {
			$submenuDefault = $('ul.top-submenu:first li.active');
		} else {
			$submenuDefault = $('ul.top-submenu:first li:first-child');
		}
		$('ul.top-submenu li').hover (function () {
			$('ul.top-submenu li').removeClass('active');
			$(this).addClass('active');
		}, 
		function () { 
			$('ul.top-submenu li').removeClass('active');
			$submenuDefault.addClass('active');
		}
		);
		$('ul.top-submenu li a').click (function () {
			if (ajaxHistoryEnabled) {
				$.address.value($(this).attr('rel'));
			} else {
				getSubmenuData($(this).attr('rel'));
			}
			return false;
		});
		
		/* Ajax hash history script */
		/* if history global allowed */
		if (ajaxHistoryEnabled) {
			 $.address.change(function (evt) {
				hash = $.address.value().substr(1);
				if (hash != oldhash) {
					getSubmenuData(hash);
				 }
				 oldhash = hash;
			 });
		}
	}
	$('.slideTo').click ( function () {
		slideTo($(this));
		return false;
	});
});


/* -------------------- TABLE STRIPE ------------------------ */
// this function is needed to work around a bug in IE related to element attributes
function hasClass(obj) {
	var result = false;
	if (obj.getAttributeNode("class") != null) { result = obj.getAttributeNode("class").value; }
	return result;
}   

function stripe(table) {
	var even = false;
	var evenColor = arguments[1] ? arguments[1] : "#fff";
	var oddColor = arguments[2] ? arguments[2] : "#edf5de";
	var tbodies = table.getElementsByTagName("tbody");
	for (var h = 0; h < tbodies.length; h++) {
	var trs = tbodies[h].getElementsByTagName("tr");
		for (var i = 0; i < trs.length; i++) {
//			if (!hasClass(trs[i]) && !trs[i].style.backgroundColor) {
			if (!trs[i].style.backgroundColor && !$(trs[i]).hasClass('expander')) {
				var tds = trs[i].getElementsByTagName("td");
				for (var j = 0; j < tds.length; j++) {
					var mytd = tds[j];
//					if (! hasClass(mytd) && ! mytd.style.backgroundColor) {
					if (!mytd.style.backgroundColor) { mytd.style.backgroundColor = even ? evenColor : oddColor; }
				}
			}
			even =  ! even;
		}
	}
}

function stripe_tables(theClass) {
	var allHTMLTags = new Array();
	var allHTMLTags=document.getElementsByTagName("*");
	for (i=0; i<allHTMLTags.length; i++) { 
		if ($(allHTMLTags[i]).hasClass(theClass)) { stripe(allHTMLTags[i]); }
	}
}

function pulsate (wht, period, times) {
	for (i=0; i<times; i++) {
		$(wht).fadeOut(period);
		$(wht).fadeIn(period);
	}
}

function checkInteger( strValue ) {
  var objRegExp  = /(^-?\d\d*$)/;
  return objRegExp.test(strValue);
}

function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
	{
	c_start=c_start + c_name.length+1;
	c_end=document.cookie.indexOf(";",c_start);
	if (c_end==-1) c_end=document.cookie.length;
	return unescape(document.cookie.substring(c_start,c_end));
	}
  }
return "";
}
function setCookie(NameOfCookie, value, expiredays)
{
var ExpireDate = new Date ();
ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));
document.cookie = NameOfCookie + "=" + escape(value) +
((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString());
}

// top submenu ajax get data function
function getSubmenuData (rel) {
	firstrel = $('.top-submenu:first li:first-child a').attr('rel');
	if (rel == '') {	
		rel = firstrel;
	} 
	$li = $('a[rel=' + rel + ']').parent();
	
	// if exist topsubmenu list - other simple hash
	if (($li.length) > 0) {
		$('#submenu-data').html ('<p class="centred"><img src="/images/wait_small.gif" width="20" height="20" alt="" /></p>');
		if ($request) {
			$request.abort();
		}	
		if ($('a', $li).attr('rel').indexOf('?') > -1) {
			url = '/ajax/'+lang+'/'+rel+'&ajax=1';
		}
		else {
			url = '/ajax/'+lang+'/'+rel+'.php?ajax=1';
		}
		$request = jQuery.get(
		url,
		function ($data){
			$('ul.top-submenu li').removeClass('active');
			$li.addClass('active');
			$submenuDefault = $li;
			$('#submenu-data').hide().html($data).fadeIn();

		}
		);
	}
}

function slideTo ($initiator) { 	
	$('html,body').animate({scrollTop: $('#' + $initiator.attr('rel')).offset().top}, 1000);
}

/* Transparent shadowed PNG FIX for IE7 */
(function ($) {
    if (!$) return;
    $.fn.extend({
        fixPNG: function(sizingMethod, forceBG) {
                if (!($.browser.msie)) return this;
                var emptyimg = "/images/1pxtransp.gif"; //Path to empty 1x1px GIF goes here
                sizingMethod = sizingMethod || "scale"; //sizingMethod, defaults to scale (matches image dimensions)
                this.each(function() {
                        var isImg = (forceBG) ? false : jQuery.nodeName(this, "img"),
                                imgname = (isImg) ? this.src : this.currentStyle.backgroundImage,
                                src = (isImg) ? imgname : imgname.substring(5,imgname.length-2);
                        this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + sizingMethod + "')";
                        if (isImg) this.src = emptyimg;
                        else this.style.backgroundImage = "url(" + emptyimg + ")";
                });
                return this;
        }
    });
})(jQuery);

//To top plugin
$.fn.topLink   = function(settings) {
	settings = $.extend({
		min: 1,
		fadeSpeed: 200
	}, settings);
	return this.each(function() {
		var el = $(this);
		el.hide();
		$(window).scroll(function() {
			if ($(window).scrollTop() >= settings.min) {
				el.fadeIn(settings.fadeSpeed);
			} else {
				el.fadeOut(settings.fadeSpeed);
			}
		});
	});
};

jQuery.extend(
	{ reallyvisible : function (a) { return !(jQuery(a).is(':hidden') || jQuery(a).parents(':hidden').length); }}
);

// vertically center something in the viewport
(function($) {
  $.fn.vCenter = function(options) {
 var pos = {
   sTop : function() {
  return window.pageYOffset
  || document.documentElement && document.documentElement.scrollTop
  ||  document.body.scrollTop;
   },
   wHeight : function() {
  return window.innerHeight
  || document.documentElement && document.documentElement.clientHeight
  || document.body.clientHeight;
   }
 };
 return this.each(function(index) {
   if (index == 0) {
  var $this = $(this);
  var elHeight = $this.height();
  var elTop = pos.sTop() + (pos.wHeight() / 2) - (elHeight / 2);
  $this.css({
    position: 'absolute',
    marginTop: '0',
    top: elTop
  });
   }
 });
  };
})(jQuery); /* INIT */
$(document).ready(
	function () {
		$('#zmz-txt').keyup(
			function () {
				CountSimbols('#zmz-txt', '.simbols-left', 143); 
			}
		).keydown(
			function () {
				CountSimbols('#zmz-txt', '.simbols-left', 143);
			}
		);
		$('#phone-form .submit').click (function () {
			$('#phone-form').submit();
			return false;
		});
		$('#phone-form').submit(
			function () {
				SendSMS();
				return false;
			}
		);
if ($('#ex3c').get(0))
{
	$('#ex3c')
		.jqm({
			trigger: false,
			overlay: 50,
			onShow: function(h) {
				/* callback executed when a trigger click. Show notice */
				h.w.css('opacity', 0.92).slideDown(); 
			},
			onHide: function(h) {
				/* callback executed on window hide. Hide notice, overlay. */
				h.w.slideUp("slow", function() { if (h.o) h.o.remove(); }
			);} 
	});
	}
		
	$('.captcha img').click(
		function () {
		return RegenerateCapcha ("");
		}
	);
	$('.captchax img').click(
		function () {
		return RegenerateCapcha ("friend");
		}
	);
		
	}
);
$(document).keydown( function( e ) {
  if( e.which == 27 && $.reallyvisible($('#ex3c'))==true) {  // escape, close box
	$('#ex3c').jqmHide();
  }
}); 
			/* FUNCTIONS */

function CountSimbols($source, $target, $maxlength) {
	var $target = $($target);
	var $source = $($source);
	var $text = $source.val().replace(/\r\n/gi,'\n');
	$text= $text.replace(/\n/gi,' ');
	if ($text.length > $maxlength) {
		$source.val($text.substring(0, $maxlength));
	} else {
/*		$source.val($text); */
	}
	$target.val(parseInt($maxlength - $source.val().length).toString());
}


/* Phone */

function SendSMS() {
	CountSimbols('#zmz-txt', '.simbols-left', 143);
	var $sms_number= jQuery.trim($('#zmz-num').val());
	var $sms_text= jQuery.trim($('#zmz-txt').val());
	var $sms_hash= jQuery.trim($('#hash').val());
	var $sms_error= false;
	if ($sms_number.length == 0) {
		ShowSMSError(1);
		$sms_error = true;
	} else if ($sms_text.length == 0) {
		ShowSMSError(2);
		$sms_error = true;
	} else if ($sms_hash.length != 4) {
		ShowSMSError(3);
		$sms_error = true;
	}
	if (!$sms_error) {
		SendSMSAjax($sms_number, $sms_text, $sms_hash);
	}
}

function SendSMSAjax($sms_number, $sms_text, $sms_hash) {
	jQuery.post(
		'/sms.inc.php',
		{'ajax': 1, 'number' : $sms_number, 'text' : $sms_text, 'hash' : $sms_hash},
		function ($data) {
			if ($data == 0) {
				/*
				$('#zmz-num').val('');
				$('#zmz-txt').val('');
				*/
				$('#hash').val('');
				CountSimbols('#zmz-txt', '.simbols-left', 143);
			}
			ShowSMSError($data);
			RegenerateCapcha("");
		}
	);
}

function ShowSMSError($error_code) {
	where = $('.phone .messages');
	err = $SMS_ERRORS_ARRAY[$error_code];
	if ($error_code=='0') $('.smsnotimg').attr('src','/images/ok.png');
	else $('.smsnotimg').attr('src','/images/stop.png');
	$('.jqmnContent').html(err);
	pos = $("#ok-widget").offset();
	$('#smsNoticeBox').css({'top' : pos.top, 'left' : pos.left});
	$('#ex3c').jqmShow();	
}

function RegenerateCapcha(what) {
try {
	if (what=='') {
		var param2 = "";
		$('.captcha img').attr('src', '/smuksimg.php?'+(new Date()).getTime());
		
		$('#hash').val('');
		} 
	else {
		var param2 = "";
		$('.captchax img').attr('src', '/smuksimg.php?'+(new Date()).getTime()+'&opt=friend');
		
		$('#hashFriend').val('');
		} 
	}
	catch (e) {}
			return false;
	}

function clearSmsForm () {
	$('#zmz-num').val('');
	$('#hash').val('');
	$('#zmz-txt').val('');
	$('.simbols-left').val(143);
} 
