//Page init scripts
jQuery(window).load(function(){
	
})
jQuery(function(){
	initClear();
	slideShow();
});

/* mego slide */
function slideShow(){
	var slideArr = [];
	jQuery('.slider-wrapper').each(function(){
		var hold = jQuery(this);
		new initSlidesNV(jQuery(this),{
			afterAnimation: function(object, list, slides, next){
				jQuery('.slide .switcher > ul > li').removeClass('active').eq(next).addClass('active');
			},
			onStart: function(set, list, slides, currentNum){
				set.list.css({ position: 'relative', width: '100%', overflow: 'hidden' });
				set.slides.css({ position: 'absolute', top: 0, left: 0, display: 'none' });
				set.slides.eq(currentNum).css({ display: 'block' });
				set.autoHeight(0);
				slideArr.push(set);
			}
		});
	});
	var slideShow1 = slideArr[0] ? slideArr[0] : false;
	if(slideShow1){
		jQuery('.slide .switcher > ul').empty();
		slideShow1.slides.each(function(idx){
			jQuery('.slide .switcher > ul').append('<li><a href="#">' + (idx+1) + '</a></li>')
		});
		jQuery('.slide .switcher > ul > li').removeClass('active').eq(slideShow1.startSlide).addClass('active');
		jQuery('.slide .switcher > ul > li').each(function(idx){
			jQuery(this).bind('click', function(){
				if(!jQuery(this).hasClass('active')){
					jQuery('.slide .switcher > ul > li').removeClass('active');
					jQuery(this).addClass('active');
					for(var i=0; i< slideArr.length;i++){
						slideArr[i].prevSlide = slideArr[i].nextSlide;
						slideArr[i].nextSlide = idx;
						slideArr[i].swichSlide(slideArr[i].prevSlide, slideArr[i].nextSlide);
					}
					
				};
				return false;
			})
		});
	};
};
function initSlidesNV(context, options){this.init(context, options)}
(function( $ ){
	initSlidesNV.prototype = {
		holder: '>div',
		list: '>ul',
		slides: '>li',
		animationSpeed: 500,
		btnPrev: '.prev',
		btnNext: '.next',
		eventType: 'click',
		eventTypeForPager: 'click',
		pagerLinks: false,
		swichTime: 5000, // 1000 = 1 sec
		circle: true,
		direction: 'rtl', // 'rtl', 'ltr', 'ttb', 'btt'
		autoHeightList: true,
		startSlide: 0,
		stopOnHover: false,
		onStart: function(){},
		afterAnimation: function(){},
		init: function(context, options){
			for ( var i in options ) this[i] = options[i]; 
			this.set = $(context);
			if(this.set == undefined) return;
			this.timer;
			this.waitAnimation = true;
			this.prevSlide = this.nextSlide = this.startSlide;
			this.btnNext = this.set.find(this.btnNext);
			this.btnPrev = this.set.find(this.btnPrev);
			this.list = this.set.find(this.list);
			this.holder = this.list.parent();
			this.slides = this.list.find(this.slides);
			if(this.pagerLinks){
				this.set.find(this.pagerLinks).each(this.binder(function(i, links){
					jQuery(links).bind(this.eventTypeForPager, this.binder(function(){
						this.prevSlide = this.nextSlide;
						this.nextSlide = i;
						if(this.nextSlide != this.prevSlide) this.swichSlide(this.prevSlide, this.nextSlide);
						return false;
					}))
				}))
			};
			this.btnNext.bind(this.eventType, this.binder(function(){
				if(this.waitAnimation){
					this.waitAnimation = false;
					this.next();
				};
				return false;
			}));
			this.btnPrev.bind(this.eventType, this.binder(function(){
				if(this.waitAnimation){
					this.waitAnimation = false;
					this.prev();
				};
				return false;
			}));
			this.autoRotation();
			if(this.stopOnHover){
				this.set.bind('mouseenter', this.binder(function(){
					clearTimeout(this.timer);
				})).bind('mouseleave', this.binder(function(){
					this.autoRotation();
				}))
			}
			this.onStart(this, this.list, this.slides, this.nextSlide);
		},
		prev: function(){
			this.prevSlide = this.nextSlide;
			if(this.nextSlide > 0){
				this.nextSlide--;
			}
			else if(this.circle) {
				this.nextSlide = this.slides.length-1
			};
			this.swichSlide(this.prevSlide, this.nextSlide);
		},
		next: function(){
			this.prevSlide = this.nextSlide;
			if(this.nextSlide < this.slides.length-1){
				this.nextSlide++
			}
			else if(this.circle) {
				this.nextSlide = 0
			};
			this.swichSlide(this.prevSlide, this.nextSlide);
		},
		swichSlide: function(prev, next){
			if(!this.slides.eq(next).length) return;
			this.slides.eq(prev).animate({
				opacity: 0
			}, { queue: false, duration: this.animationSpeed, complete: this.binder(function(){
				this.slides.eq(prev).css({ display: 'none' });
			})})
			this.slides.eq(next).css({ 
				opacity: 0,
				display: 'block'
			}).animate({
				opacity: 1
			}, { queue: false, duration: this.animationSpeed, complete: this.binder(function(){
				this.afterAnimation(this, this.list, this.slides, next);
				this.waitAnimation = true;
				if(this.autoHeightList) this.autoHeight(this.nextSlide);
				clearTimeout(this.timer);
				this.autoRotation();
			})});
		},
		autoHeight: function(next){
			if(this.autoHeightList){
				this.list.animate({ height: this.slides.eq(next).outerHeight() }, { queue: false, duration: 150 });
			}
		},
		autoRotation: function(){
			if(this.swichTime && this.swichTime > 0){
				this.timer = setTimeout(this.binder(function(){
					if(this.direction == 'ltr'){
						this.prev();
					}else if(this.direction == 'rtl') {
						this.next();
					}
				}), this.swichTime)
			}
		},
		binder: function(fn, scope, args){
			var newScope = scope || this;
			return function() {
				return fn.apply(newScope, args || arguments);
			}
		}
	}
})( jQuery );

/* initClear */
function initClear(){
	clearFormFields({
		clearInputs: true,
		clearTextareas: true,
		passwordFieldText: true,
		addClassFocus: "focus",
		filterClass: "default"
	});
}
function clearFormFields(o){
	if (o.clearInputs == null) o.clearInputs = true;
	if (o.clearTextareas == null) o.clearTextareas = true;
	if (o.passwordFieldText == null) o.passwordFieldText = false;
	if (o.addClassFocus == null) o.addClassFocus = false;
	if (!o.filter) o.filter = "default";
	if(o.clearInputs) {
		var inputs = document.getElementsByTagName("input");
		for (var i = 0; i < inputs.length; i++ ) {
			if((inputs[i].type == "text" || inputs[i].type == "password") && inputs[i].className.indexOf(o.filterClass)) {
				inputs[i].valueHtml = inputs[i].value;
				inputs[i].onfocus = function ()	{
					if(this.valueHtml == this.value) this.value = "";
					if(this.fake) {
						inputsSwap(this, this.previousSibling);
						this.previousSibling.focus();
					}
					if(o.addClassFocus && !this.fake) {
						this.className += " " + o.addClassFocus;
						this.parentNode.className += " parent-" + o.addClassFocus;
					}
				}
				inputs[i].onblur = function () {
					if(this.value == "") {
						this.value = this.valueHtml;
						if(o.passwordFieldText && this.type == "password") inputsSwap(this, this.nextSibling);
					}
					if(o.addClassFocus) {
						this.className = this.className.replace(o.addClassFocus, "");
						this.parentNode.className = this.parentNode.className.replace("parent-"+o.addClassFocus, "");
					}
				}
				if(o.passwordFieldText && inputs[i].type == "password") {
					var fakeInput = document.createElement("input");
					fakeInput.type = "text";
					fakeInput.value = inputs[i].value;
					fakeInput.className = inputs[i].className;
					fakeInput.fake = true;
					inputs[i].parentNode.insertBefore(fakeInput, inputs[i].nextSibling);
					inputsSwap(inputs[i], null);
				}
			}
		}
	}
	if(o.clearTextareas) {
		var textareas = document.getElementsByTagName("textarea");
		for(var i=0; i<textareas.length; i++) {
			if(textareas[i].className.indexOf(o.filterClass)) {
				textareas[i].valueHtml = textareas[i].value;
				textareas[i].onfocus = function() {
					if(this.value == this.valueHtml) this.value = "";
					if(o.addClassFocus) {
						this.className += " " + o.addClassFocus;
						this.parentNode.className += " parent-" + o.addClassFocus;
					}
				}
				textareas[i].onblur = function() {
					if(this.value == "") this.value = this.valueHtml;
					if(o.addClassFocus) {
						this.className = this.className.replace(o.addClassFocus, "");
						this.parentNode.className = this.parentNode.className.replace("parent-"+o.addClassFocus, "");
					}
				}
			}
		}
	}
	function inputsSwap(el, el2) {
		if(el) el.style.display = "none";
		if(el2) el2.style.display = "inline";
	}
};
