;(function($){

$(function(){
	initCustomFile();
	hoverForIE6(".grid-box .visual div, .slidebox .submit, .slidebox .send, .comment-form .submit, .find-form .submit", "hover");
	clearInputs();
	initCustomForms();
	initAjaxFunctional();
	initTopNav();
	initMenu();
	initRandomBlock();
	initBrowserDetect();
	//initValidation();
});

function initValidation(){
	var errorClass = 'error';
	var regEmail = /([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+/;
	jQuery('.slide-form form').each(function(){
		var $form = jQuery(this);
		var btnSubmit = $form.find('input:submit');
		jQuery('input[type=text], textarea', jQuery(this)).focus(function(){
			jQuery(this).parents('div').eq(0).removeClass(errorClass);
		});
		$form.find('input[type=text], textarea').each(function(){
			jQuery(this).data('val', jQuery(this).val());
		});
		function checkFields() {
			
			var $flag = false;
			$form.find('.'+errorClass).removeClass(errorClass);

			// fields validation
			$form.find('input').each(function(){
				if(this.className.indexOf('email') != -1 && this.className.indexOf('required') != -1 ){
					if(!regEmail.test(jQuery(this).val()) || jQuery(this).val() == '' || jQuery(this).val() == jQuery(this).data('val')) addError(jQuery(this));
				}
				else if(this.className.indexOf('email') == -1 && this.className.indexOf('required') != -1){
					if( jQuery(this).val() == '' || jQuery(this).val() == jQuery(this).data('val') ) addError(jQuery(this));
				};
			});
			// error class adding
			function addError(element) {
				element.parents('div').eq(0).addClass(errorClass);
				$flag=true;
			}
			return $flag;
		}

		// catch form submit event		$form.submit(function(){			if(checkFields()) {				return false;			};		});
	});
};

//grid/list switching
function initAjaxFunctional(){
	var holder = $('#content');
	var links = $('div.heading ul.tabs a',holder);
	var contentHolder = $('div.dynamic-content-container',holder);
	var paging = $('ul.paging > li',contentHolder);
	var form = $('form.search');
	var loader = $('span.load',form);
	var opener = $('a.drop-opener',form);
	var drop = $('div.drop',form);
	var slider = $('>ul',drop);
	var sliderLinks = $('>li a',slider)
	var input = $('input:text',form);
	var inputFields = $('input:text,textarea'); 
	var dropH = drop.height();
	var margin = 0;
	var step = false;
	var timer;
	var contentArray = new Array;
	var active;
	var ajaxQuery;
	var winHash = window.location.hash;
	
	//pager
	paging.live('click',function(){
		if (!$('body').hasClass('no-ajax') && !$('body').hasClass('ajax-loading') || jQuery('body').hasClass('force-enable-pager')) {
			$(window).scrollTop(0);
			$('body').addClass('ajax-loading');
			var li = $(this);
			if (li.hasClass('active')) return false;
			var url = $('>a',li).attr('href');
			loader.show();
			if (ajaxQuery) ajaxQuery.abort();
			ajaxQuery = $.ajax({
				url:url+'&ajax=true',
				error:function(){
					alert('ajax error');
				},
				success:function(msg){
					var tab = $(msg);
					var i = links.filter('.active').data('index');
					links.each(function(){
						var link = $(this);
						var newHref;
						if (url.indexOf('mode=grid') != -1) {
							url = url.replace('mode=grid','');
						} else if (url.indexOf('mode=list') != -1) {
							url = url.replace('mode=list','');
						}
						
						if (link.hasClass('grid')) newHref = url+'&mode=grid'
						else newHref = url+'&mode=list';
						link.attr('href',newHref);
					});
					
					
					
					$('body').removeClass('ajax-loading');
					loader.hide();
					contentHolder.empty();
					contentArray.length = 0;
					active = i;
					tab.appendTo(contentHolder);
					contentArray[i] = tab;
					afterload();
					$(window).scrollTop(0);
					tab.find('.paging > li').each(function(idx, el){
						if(jQuery(el).hasClass('active')){
							if(winHash.indexOf('page=') == -1){
								if(winHash.indexOf('#') != -1){ window.location.hash = winHash + '&page='+idx; }
								else { window.location.hash = winHash + '#page='+idx;}
							};
						}
					});
					
				}
			});
		}
		return false;
	});
	if(window.location.hash){
		var pageLoad = window.location.hash.substr(window.location.hash.indexOf('page='));
		var currPage = parseInt(pageLoad.substr(pageLoad.indexOf('=')+1));
		paging.eq(currPage).trigger('click')
	}
	//grid / list tabs
	links.each(function(i){
		var link = $(this);
		link.data('index',i);
		if (link.hasClass('active')) {
			contentArray[i] = $('div.tab');
			active = i;
		}
	});
	
	$(document).bind('keydown',function(e){
		switch (e.keyCode) {
			//grid(g)
			case 71:
				links.filter('.grid').trigger('click');
			break;
			//list(l)
			case 76:
				links.filter('.list').trigger('click');
			break;
			//next post(n)
			case 78:
				if (links.filter('.list').hasClass('active')) {
					var boxes = $('div.list-box div.box');
					var scrollTop = $(window).scrollTop();			
					var offsetArray = new Array;
					var diffArray = new Array;
					var flag = false;
					var min;
					var minIndex;
					
					for (var i = 0; i < boxes.length; i++) {
						var box = boxes.eq(i);
						offsetArray[i] = box.offset().top;
						diffArray[i] = scrollTop - offsetArray[i];
						if (Math.ceil(diffArray[i]) == 0) {
							flag = true;
							minIndex = i+1;
							if (minIndex > boxes.length-1) return;
						} 
					}
					if (!flag) {
						for (var i = 0; i < diffArray.length-1; i++) {
							if ((diffArray[i] > min || typeof min == 'undefined') && diffArray[i] < 0){
								min = diffArray[i];
								minIndex = i;
							}
						}
					}
					$(window).scrollTop(offsetArray[minIndex]);
				}
			break;
			//prev post(p)
			case 80:
				if (links.filter('.list').hasClass('active')) {
					var boxes = $('div.list-box div.box');
					var scrollTop = $(window).scrollTop();
					var offsetArray = new Array;
					var diffArray = new Array;
					
					for (var i = 0; i < boxes.length; i++) {
						var box = boxes.eq(i);
						offsetArray[i] = box.offset().top;
						diffArray[i] = scrollTop - offsetArray[i];
					}
					var min;
					var minIndex;
					for (var i = 0; i < diffArray.length-1; i++) {
						if ((diffArray[i] < min && diffArray[i] > 0) || (typeof min == 'undefined')){
							min = diffArray[i];
							minIndex = i;
						}
					}
					$(window).scrollTop(offsetArray[minIndex]);
				}
			break;
		}
	});
	
	inputFields.bind('keydown',function(e){
		e.stopPropagation();
	});
	
	links.click(function(){
		var link = $(this);
		var i = link.data('index');
		if (i == active) return false;
		
		if (!$('body').hasClass('no-ajax')) {
			if (typeof contentArray[i] != 'undefined') showTab();
			else loadTab();
			return false;
		}
		
		function showTab(){
			contentArray[active].hide();
			contentArray[i].show();
			links.eq(active).removeClass('active');
			links.eq(i).addClass('active');
			active = i;
			$(window).scrollTop(0);
		}
		
		function loadTab(){
			url = link.attr('href');
		 	if (url.indexOf('ajax=true') == -1) url += '&ajax=true'
			
			loader.show();
			if (ajaxQuery) ajaxQuery.abort();
			var ajaxQuery = $.ajax({
				url:url,
				error:function(){
					alert('ajax error');
				},
				success:function(msg){
					var tab = $(msg);
					tab.appendTo(contentHolder);
					contentArray[i] = tab;
					loader.hide();
					afterload();
					showTab();
				}
			});
		}
	});
	
	//form links
	sliderLinks.click(function(){
		var _this = $(this);
		input.val(_this.text());
		drop.hide();
		form.submit();
		return false;
	});
	
	//form submit
	form.submit(function(){
		if (!$('body').hasClass('no-ajax')) {
			loader.show();
			var mode;
			if (links.filter('.active').hasClass('grid')) mode = 'grid'
			else mode = 'list';
			var url = form.attr('action');
			var params = form.serialize();
			if (ajaxQuery) ajaxQuery.abort();
			ajaxQuery = $.ajax({
				url:url+'?ajax=true&mode='+mode,
				data:params,
				error:function(){
					alert('ajax error');
				},
				success:function(msg){
					var tab = $(msg);
					var i = links.filter('.active').data('index');
					
					links.each(function(){
						var link = $(this);
						var newHref;
						if (link.hasClass('grid')) newHref = url+'?'+params+'&mode=grid'
						else newHref = url+'?'+params+'&mode=list';
						link.attr('href',newHref);
					});
					
					loader.hide();
					contentHolder.empty();
					contentArray.length = 0;
					active = i;
					tab.appendTo(contentHolder);
					contentArray[i] = tab;
					afterload();
					$(window).scrollTop(0);
				}
			});
			return false;
		}
	});
	
	function afterload(){
		$('ul.grid-box > li > div.visual').fadeOverlay();
		$('ul.post-list > li > div.visual1').fadeOverlay();
	}
	afterload();
	
	// form dropdown
	opener.click(function(e){
		if (drop.is(':hidden')) drop.show()
		else drop.hide();
		return false;
	});
	
	$(document).click(function(e){
		var target = e.target;
		var closeFlag = true;
		$(target).parents().each(function(){
			if (target != drop.get(0)) closeFlag = false;
		});
		if (!closeFlag) drop.hide();
	});
	
	drop.mousemove(function(e){
		var dropOffset = drop.offset().top;		
		var pageY = e.pageY;
		var diff = pageY - dropOffset;
		if (diff < dropH*0.3) {
			if (step != -1) {
				step = -1;
				moveSlider();
			}
		} else if (diff > dropH * 0.7) {
			if (step !=1) {
				step = 1;
				moveSlider();
			}
		} else {
			stopSlider();
		}
	}).mouseleave(function(){
		stopSlider();
	})
	
	function stopSlider(){
		clearInterval(timer);
		step = false;
	}
	
	function moveSlider(){
		timer = setInterval(function(){
			var sliderH = slider.height();
			var maxH = sliderH - dropH;
			margin += step;
			
			if (margin > maxH) margin = maxH;
			else if (margin < 0) margin = 0;
			slider.css({marginTop:-margin});
		},15);
	}
}

$.fn.fadeOverlay = function(){
	var duration = 350;
	var finalOpacity = 0.5;
	return this.each(function(){
		var _this = $(this);
		var overlay = $('a.shad',_this).css({opacity:0});
		_this.mouseenter(function(){
			overlay.css({display:'block'}).stop().animate({opacity:finalOpacity},duration)
		}).mouseleave(function(){
			overlay.stop().animate({opacity:0},duration,function(){
				overlay.css({display:'none'});
			});
		});
	});
}

function initRandomBlock(){
	var blocks = $('div.sidebox-holder div.sidebox');
	var randIndex = Math.floor(Math.random() * (blocks.length));
	blocks.eq(randIndex).show();
}

function initMenu(){
	var links = $('ul.main-menu > li');	
	var drops = $('div.drop-container div.drop-holder');
	var closers = $('a.close',drops);
	var active = -1;
	var duration = 350;
	
	links.each(function(i){
		var link = links.eq(i);
		var drop = drops.eq(i);
		var closer = closers.eq(i);
		
		if (link.hasClass('active')) drop.show();
		
		function showDrop(){
			link.addClass('active');
			drop.slideDown(duration);
			active = i;
		}
		
		function hideDrop(){
			drop.slideUp(duration,function(){
				link.removeClass('active');
				active = -1;
			});
		}
		
		link.click(function(){
			if (drops.is(':animated')) return false;
			
			if (active == -1) {
				showDrop();
			} else if (active == i){
				hideDrop();
			} else {
				drops.eq(active).slideUp(duration,function(){
					links.eq(active).removeClass('active');
					showDrop();
				})
			}
			return false;
		});
		closer.click(function(){
			if (!drops.is(':animated')) {
				hideDrop();
			}
			return false;
		})
		
	})
}

function initTopNav(){
	var nav = $('#nav a, #footer ul a');
	var defActive = nav.filter('.active');
	var links = nav.filter('.with-slide');
	var slides = $('div.slidebox');
	var inputFile = $('input.file-input-area',slides);
	var closers = $('a.close',slides);
	var duration = 350;
	var active = -1;
	var slideH = new Array;
	
	links.each(function(i){
		var link = links.eq(i);
		var slide = slides.eq(i).css({display:'block'});
		slideH[i] = slide.height();
		slide.css({opacity:0,display:'none',height:0});
		var closer = closers.eq(i);
		
		if (link.hasClass('active')) active = i;
		
		if (link.hasClass('say-hello')) {
			$('a.say-hello-opener').click(function(){
				$.scrollTo(0, duration, function(){
					link.trigger('click');
				});
				return false;
			});
		} else if (link.hasClass('about')) {
			$('a.about-opener').click(function(){
				$.scrollTo(0, duration, function(){
					link.trigger('click');
				});
				return false;
			});
		} else if (link.hasClass('submit')) {
			$('a.submit-opener').click(function(){
				$.scrollTo(0, duration, function(){
					link.trigger('click');
				});
				return false;
			});
		} if (link.hasClass('advertise')) {
			$('a.advertise-opener').click(function(){
				link.trigger('click');
				return false;
			});
		}
		
		function showSlide(){
			links.eq(i).addClass('active');
			defActive.removeClass('active');
			slide.css({display:'block'}).animate({height:slideH[i]},duration,function(){
				slide.animate({opacity:1},duration,function(){
					slide.removeAttr('style').css({display:'block'});
					inputFile.css({visibility:'visible',opacity:0});
				});
				active = i;
			});
			if (links.eq(i).parents('#footer').length) {
				//var scrollTop = $(window).scrollTop()+slideH[i];
				var scrollTop = $('div.w1').height() - $(window).height()+slideH[i];

				var _window 
				if ($.browser.webkit) _window = $('body')
				else _window = $('html')
				
				_window.animate({scrollTop:scrollTop},duration)
			}
		}
		
		function hideSlide(){
			inputFile.removeAttr('style').css({visibility:'hidden'});
			slide.animate({opacity:0},duration,function(){
				slide.animate({height:0},function(){
					links.eq(active).removeClass('active');
					defActive.addClass('active');
					active = -1;
				});
			});
		}
		
		link.click(function(){
			if (slides.is(':animated')) return false;
			
			if (active == -1) {
				showSlide();
			} else if (active == i){
				hideSlide();
			} else {
				inputFile.removeAttr('style').css({visibility:'hidden'});
				slides.eq(active).animate({opacity:0},duration,function(){
					slides.eq(active).animate({height:0},duration,function(){
						links.eq(active).removeClass('active');
						links.eq(i).addClass('active');
						showSlide();
					});
				});
			}
			return false;
		});
		
		closer.click(function(){
			if (!slides.is(':animated')) {
				hideSlide();
			}
			return false;
		})
	});
}

//ie6 hover
function hoverForIE6(h_list, h_class){
	if($.browser.msie && $.browser.version < 7){
		if(!h_class) var h_class = 'hover';
		$(h_list).mouseenter(function(){
			$(this).addClass(h_class);
		}).mouseleave(function(){
			$(this).removeClass(h_class);
		});
	}
}

// clear inputs
function clearInputs(){
	$('input:text, input:password, textarea').each(function(){
		var _el = $(this);
		var _val = _el.val();
		_el.bind('focus', function(){
			if(this.value == _val) this.value = '';
		}).bind('blur', function(){
			if(this.value == '') this.value = _val;
		});
	});
}

// custom input file
function initCustomFile()
{
	var imgRegExp = /\.(jpg|gif|png|jpeg)(.*)?$/i;
	var inputs = document.getElementsByTagName("input");
	for (var i= 0; i < inputs.length; i++)
	{
		if(inputs[i].className.indexOf("file-input-area") != -1)
		{
			inputs[i].file = inputs[i].parentNode.parentNode.getElementsByTagName("input").item(1);
			inputs[i].file.readOnly = true;
			inputs[i].onchange = function()
			{
				if (imgRegExp.test(this.value)) {
					this.file.value = this.value;
					
				} else {
					alert('Only JPGs, PNG, Gif able to upload');
				}
			}
			inputs[i].onmouseover = function()
			{
				this.parentNode.parentNode.className += " hover";
			}
			inputs[i].onmouseout = function()
			{
				this.parentNode.parentNode.className = this.parentNode.parentNode.className.replace(" hover", "");
			}
		}
	}
}

// custom forms init
function initCustomForms() {
	$('select').customSelect();
	$('input:radio').customRadio();
}

	// custom checkboxes module
	jQuery.fn.customCheckbox = function(_options){
		var _options = jQuery.extend({
			checkboxStructure: '<div></div>',
			checkboxDisabled: 'disabled',
			checkboxDefault: 'checkboxArea',
			checkboxChecked: 'checkboxAreaChecked',
			filterClass:'default'
		}, _options);
		return this.each(function(){
			var checkbox = jQuery(this);
			if(!checkbox.hasClass('outtaHere') && checkbox.is(':checkbox') && !checkbox.hasClass(_options.filterClass)){
				var replaced = jQuery(_options.checkboxStructure);
				this._replaced = replaced;
				if(checkbox.is(':disabled')) replaced.addClass(_options.checkboxDisabled);
				else if(checkbox.is(':checked')) replaced.addClass(_options.checkboxChecked);
				else replaced.addClass(_options.checkboxDefault);

				replaced.click(function(){
					if(checkbox.is(':checked')) checkbox.removeAttr('checked');
					else checkbox.attr('checked', 'checked');
					changeCheckbox(checkbox);
				});
				checkbox.click(function(){
					changeCheckbox(checkbox);
				});
				replaced.insertBefore(checkbox);
				checkbox.addClass('outtaHere');
			}
		});
		function changeCheckbox(_this){
			_this.change();
			if(_this.is(':checked')) _this.get(0)._replaced.removeClass().addClass(_options.checkboxChecked);
			else _this.get(0)._replaced.removeClass().addClass(_options.checkboxDefault);
		}
	}

	// custom radios module
	jQuery.fn.customRadio = function(_options){
		var _options = jQuery.extend({
			radioStructure: '<div></div>',
			radioDisabled: 'disabled',
			radioDefault: 'radioArea',
			radioChecked: 'radioAreaChecked',
			filterClass:'default'
		}, _options);
		return this.each(function(){
			var radio = jQuery(this);
			if(!radio.hasClass('outtaHere') && radio.is(':radio') && !radio.hasClass(_options.filterClass)){
				var replaced = jQuery(_options.radioStructure);
				this._replaced = replaced;
				if(radio.is(':disabled')) replaced.addClass(_options.radioDisabled);
				else if(radio.is(':checked')) replaced.addClass(_options.radioChecked);
				else replaced.addClass(_options.radioDefault);
				replaced.click(function(){
					if($(this).hasClass(_options.radioDefault)){
						radio.attr('checked', 'checked');
						changeRadio(radio.get(0));
					}
				});
				radio.click(function(){
					changeRadio(this);
				});
				replaced.insertBefore(radio);
				radio.addClass('outtaHere');
			}
		});
		function changeRadio(_this){
			$(_this).change();
			$('input:radio[name='+$(_this).attr("name")+']').not(_this).each(function(){
				if(this._replaced && !$(this).is(':disabled')) this._replaced.removeClass().addClass(_options.radioDefault);
			});
			_this._replaced.removeClass().addClass(_options.radioChecked);
		}
	}

	// custom selects module
	jQuery.fn.customSelect = function(_options) {
		var _options = jQuery.extend({
			selectStructure: '<div class="selectArea"><span class="left"></span><span class="center"></span><a href="#" class="selectButton"></a><div class="disabled"></div></div>',
			hideOnMouseOut: false,
			copyClass: true,
			selectText: '.center',
			selectBtn: '.selectButton',
			selectDisabled: '.disabled',
			optStructure: '<div class="optionsDivVisible"><div class="select-top"></div><div class="select-center"><div class="select-c"><ul></ul></div></div><div class="select-bottom"></div>',
			optList: 'ul',
			filterClass:'default'
		}, _options);
		return this.each(function() {
			var select = jQuery(this);
			if(!select.hasClass('outtaHere') && !select.hasClass(_options.filterClass)) {
				if(select.is(':visible')) {
					var hideOnMouseOut = _options.hideOnMouseOut;
					var copyClass = _options.copyClass;
					var replaced = jQuery(_options.selectStructure);
					var selectText = replaced.find(_options.selectText);
					var selectBtn = replaced.find(_options.selectBtn);
					var selectDisabled = replaced.find(_options.selectDisabled).hide();
					var optHolder = jQuery(_options.optStructure);
					var optList = optHolder.find(_options.optList);
					if(copyClass) optHolder.addClass('drop-'+select.attr('class'));

					if(select.attr('disabled')) selectDisabled.show();

					select.bind('rebuild',function(){
						optList.empty();
						select.find('option').each(function(){
							var selOpt = $(this);
							var _opt = jQuery('<li><a href="#">' + selOpt.html() + '</a></li>');
							if(selOpt.attr('selected')) {
								selectText.html(selOpt.html());
								_opt.addClass('selected');
							}
							_opt.children('a').click(function() {
								optList.find('li').removeClass('selected');
								select.find('option').removeAttr('selected');
								$(this).parent().addClass('selected');
								selOpt.attr('selected', 'selected');
								selectText.html(selOpt.html());
								select.change();
								optHolder.hide();
								return false;
							});
							optList.append(_opt);
						});
					});
					
					select.trigger('rebuild');
					
					replaced.width(select.outerWidth());
					replaced.insertBefore(select);
					optHolder.css({
						width: select.outerWidth(),
						display: 'none',
						position: 'absolute'
					});
					jQuery(document.body).append(optHolder);

					var optTimer;
					replaced.hover(function() {
						if(optTimer) clearTimeout(optTimer);
					}, function() {
						if(hideOnMouseOut) {
							optTimer = setTimeout(function() {
								optHolder.hide();
							}, 200);
						}
					});
					optHolder.hover(function(){
						if(optTimer) clearTimeout(optTimer);
					}, function() {
						if(hideOnMouseOut) {
							optTimer = setTimeout(function() {
								optHolder.hide();
							}, 200);
						}
					});
					selectBtn.click(function() {
						if(optHolder.is(':visible')) {
							optHolder.hide();
						}
						else{
							if(_activeDrop) _activeDrop.hide();
							optHolder.children('ul').css({height:'auto', overflow:'hidden'});
							optHolder.css({
								top: replaced.offset().top + replaced.outerHeight(),
								left: replaced.offset().left,
								display: 'block'
							});
							optHolder.removeClass('scrollable');
							if(optHolder.height() > 126) optHolder.addClass('scrollable');
							_activeDrop = optHolder;
						}
						return false;
					});
					replaced.addClass(select.attr('class'));
					select.addClass('outtaHere');
					
					select.data('replaced',replaced);
				}
			}
		});
	}

	// event handler on DOM ready
	var _activeDrop;
	jQuery(function(){
		jQuery('body').click(hideOptionsClick)
		jQuery(window).resize(hideOptions)
	});
	function hideOptions() {
		if(_activeDrop && _activeDrop.length) {
			_activeDrop.hide();
			_activeDrop = null;
		}
	}
	function hideOptionsClick(e) {
		if(_activeDrop && _activeDrop.length) {
			var f = false;
			$(e.target).parents().each(function(){
				if(this == _activeDrop) f=true;
			});
			if(!f) {
				_activeDrop.hide();
				_activeDrop = null;
			}
		}
	}
	
function initBrowserDetect()
{
	var u = navigator.userAgent.toLowerCase();
	var _html = document.getElementsByTagName("html")[0];
	
	if(is("win")) addClass("win");
	else if(is("mac")) addClass("mac");
	else if(is("linux") || is("x11")) addClass("linux");
	
	if(is("msie 8.0")) addClass("ie8");
	else if(is("msie 7.0")) addClass("ie7");
	else if(is("msie 6.0")) addClass("ie6");
	else if(is("firefox/2")) addClass("ff2");
	else if(is("firefox/3")) addClass("ff3");
	else if(is("opera") && is("version/10")) addClass("opera10");
	else if(is("opera/9")) addClass("opera9");
	else if(is("safari") && is("version/3")) addClass("safari3");
	else if(is("safari") && is("version/4")) addClass("safari4");
	else if(is("safari") && is("version/5")) addClass("safari5");
	else if(is("chrome")) addClass("chrome");
	else if(is("safari")) addClass("safari2");
	else if(is("unknown")) addClass("unknown");
	
	if(is("msie")) addClass("trident");
	else if(is("applewebkit")) addClass("webkit");
	else if(is("gecko")) addClass("gecko");
	else if(is("opera")) addClass("presto");
		
	function is(browser)
	{
		if(u.indexOf(browser) !=-1) return true;
	}
	function addClass(_class)
	{
		_html.className += (" " + _class);
	}
}
	
})(jQuery);

/**
 * jQuery.ScrollTo - Easy element scrolling using jQuery. Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 */
;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
/*
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
*/
jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return -(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e},easeOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return g*Math.pow(2,-10*h)*Math.sin((h*k-i)*(2*Math.PI)/j)+l+e},easeInOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k/2)==2){return e+l}if(!j){j=k*(0.3*1.5)}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}if(h<1){return -0.5*(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e}return g*Math.pow(2,-10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j)*0.5+l+e},easeInBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*(f/=h)*f*((g+1)*f-g)+a},easeOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*((f=f/h-1)*f*((g+1)*f+g)+1)+a},easeInOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}if((f/=h/2)<1){return i/2*(f*f*(((g*=(1.525))+1)*f-g))+a}return i/2*((f-=2)*f*(((g*=(1.525))+1)*f+g)+2)+a},easeInBounce:function(e,f,a,h,g){return h-jQuery.easing.easeOutBounce(e,g-f,0,h,g)+a},easeOutBounce:function(e,f,a,h,g){if((f/=g)<(1/2.75)){return h*(7.5625*f*f)+a}else{if(f<(2/2.75)){return h*(7.5625*(f-=(1.5/2.75))*f+0.75)+a}else{if(f<(2.5/2.75)){return h*(7.5625*(f-=(2.25/2.75))*f+0.9375)+a}else{return h*(7.5625*(f-=(2.625/2.75))*f+0.984375)+a}}}},easeInOutBounce:function(e,f,a,h,g){if(f<g/2){return jQuery.easing.easeInBounce(e,f*2,0,h,g)*0.5+a}return jQuery.easing.easeOutBounce(e,f*2-g,0,h,g)*0.5+h*0.5+a}});
