$(document).ready(function(){
	initClearFields();
	initTabs();
	initVerticalTabs();
	initGalleries();
	initBizForm();
});

//galleries init
function initGalleries(){
	var gallery1 = $('.gallery').gallery({
		duration: 600,
		listOfSlides: '.gallery-holder>ul>li',
		autoRotation: 6000
	});
	$('.gallery').mouseenter(function(){
		gallery1.stop();
	}).mouseleave(function(){
		gallery1.play();
	});
	initDoubleGallery();
}

function initDoubleGallery(){
	var _activeClass = 'active';
	var _animSpeed = 800;
	var _duration = 6000;
	$('.visual').each(function(){
		var _holder = $(this);
		//var _slideEl = $('ul.slideshow1', _holder);
		var _fadeEls = $('ul.slideshow2>li', _holder);
		var _length = _fadeEls.length;
		var _active = 0;
		//var _step = _slideEl.find('>li').width();
		var _t;

		//_slideEl.css('left', 0);
		_fadeEls.hide();
		_fadeEls.eq(_active).show();

		function changeEls(){
			var _curActive = _active;
			if (_active >=0 && _active<_length-1) _active++
				else if (_active==_length-1) _active=0;
			_fadeEls.eq(_curActive).fadeOut(_animSpeed);
			_fadeEls.eq(_active).fadeIn(_animSpeed);
			//_slideEl.animate({
			//	'left': -_step*_active
			//})
		}

		_holder.mouseenter(function(){
			if (_t) clearInterval(_t);
		}).mouseleave(function(){
			if (_t) clearInterval(_t);
			_t = setInterval(changeEls, _duration);
		})
		
		_t = setInterval(changeEls, _duration);
	})
}

(function($) {
	/* Gallery */
	function Gallery(el, options) {
		this._hold = $(el);
		this.initOptions(options);
		this._timer = options.autoRotation;
		this._t;
		this.initialize();
	}
	
	$.fn.gallery = function(options) {
		return new Gallery(this.get(0), options);
	};
	
	Gallery.prototype = {
		initOptions: function(_obj){
			this.options = {
				randomSlide: false,
				changeHeight: false,
				duration: 700,
				slideElement: 1,
				event: 'click',
				autoRotation: false,
				effect: false,
				listOfSlides: 'ul > li',
				switcher: false,
				disableBtn: false,
				nextBtn: 'a.next-link, a.btn-next, a.next, a.link-next',
				prevBtn: 'a.prev-link, a.btn-prev, a.prev, a.link-prev',
				circle: true,
				direction: false,
				IE: false,
				swicherBuilder: false,
				titleReplace: false
			};
			for(key in _obj) this.options[key] = _obj[key];
		},
		initialize: function(){
			var _this = this;
			var _hold = _this._hold;
			var _speed = _this.options.duration;
			var _timer = _this.options.autoRotation;
			var _el = _hold.find(_this.options.listOfSlides);
			if(_el.length){
				_el.css('display','block');
				if (_this.options.effect){
					_el.css('position','absolute');
					var _list = _el;
				}
				else var _list = _el.parent();
				var _switcher = _hold.find(_this.options.switcher);
				var _next = _hold.find(_this.options.nextBtn);
				var _prev = _hold.find(_this.options.prevBtn);
				var _count = _el.index(_el.filter(':last'));
				var _w = _el.outerWidth(true);
				var _h = _el.outerHeight(true);
				if (_this.options.switcher) var _active = _switcher.index(_switcher.filter('.active:eq(0)'));
				else var _active = _el.index(_el.filter('.active:eq(0)'));
				if (_active < 0) _active = 0;
				var _last = _active;
				if(_this.options.swicherBuilder){
					this._hold.append('<ul class="'+_this.options.swicherBuilder+'" />');
					var _newSwitcher = $('.' + _this.options.swicherBuilder, this._hold);
					
					for (var i = 0; i < _el.length; i++){
						_newSwitcher.append('<li><a href="#">'+ (i+1) +'</a></li>');
						if(i==_active){
							_newSwitcher.find('li').eq(_active).addClass('active');
						}
					};
					
					_switcher = _newSwitcher.find('li');
				}
				if(_this.options.titleReplace){
					var titleReplace = _hold.find(_this.options.titleReplace);
					if(titleReplace.length){
						_el.each(function(i){
							var this_el = $(this);
							var this_title = this_el.attr('title');
							if(this_title.length){
								_el.eq(i).data("title", this_title);
							}else{
								_el.eq(i).data("title", 'No title');
							}
							this_el.removeAttr('title');
						});
						titleReplace.html(_el.eq(_active).data("title"));
					}
				}
				
				// Installation directions
				if (!_this.options.direction) {
					var _wrapHolderW = Math.ceil(_list.parent().width() / _w);
					if (((_wrapHolderW - 1) * _w + _w / 2) > _list.parent().width()) _wrapHolderW--;
				}
				else{
					var _wrapHolderW = Math.ceil(_list.parent().height()/_h);
					if (((_wrapHolderW-1)*_h + _h/2) > _list.parent().height()) _wrapHolderW--;
				}
				
				// Setting "fade" or "slide" effect
				if (!_this.options.effect) var rew = _count - _wrapHolderW + 1;
				else var rew = _count;
				if (!_this.options.effect) {
					if (!_this.options.direction) _list.css({marginLeft: -(_w * _active)})
					else _list.css({marginTop: -(_h * _active)})
				}
				else {
					_list.css({
						opacity: 0
					}).removeClass('active').eq(_active).addClass('active').css({
						opacity: 1
					}).css('opacity', 'auto');
					_switcher.removeClass('active').eq(_active).addClass('active');
					if ($.browser.msie && _this.options.IE){
						_list.css({
							display: 'none'
						});
						_list.eq(_active).css({
							display: 'block'
						});
					}
				}
				
				// Disable or enable buttons "prev next"
				if (_this.options.disableBtn) {
					if (_count < _wrapHolderW) _next.addClass(_this.options.disableBtn);
					_prev.addClass(_this.options.disableBtn);
				}
				
				// Function to "fade"
				if(_this.options.changeHeight){
					if (_this.options.effect){
						_el.parent().css({height: _list.eq(_active).outerHeight(true), overflow: 'hidden'});
					}else{
						if(_this.options.slideElement>1){
							var active_H = _list.children().eq(_active).outerHeight(true);
							for (var i = 1; i < _this.options.slideElement; i++){
								if(active_H<_list.children().eq(_active+i).outerHeight(true)){
									active_H=_list.children().eq(_active+i).outerHeight(true)
								}
							};
							_el.parent().css({height: active_H, overflow: 'hidden'});
						}else _el.parent().css({height: _list.children().eq(_active).outerHeight(true), overflow: 'hidden'});
					}
				}
				function fadeElement(){
					if ($.browser.msie && _this.options.IE){
						_list.eq(_last).css({
							opacity:0,
							display: 'none'
						});
						_list.removeClass('active').eq(_active).addClass('active').css({
							opacity:'auto',
							display: 'block'
						});
					}
					else{
						_list.eq(_last).animate({opacity:0}, {queue:false, duration: _speed});
						_list.removeClass('active').eq(_active).addClass('active').animate({
							opacity:1
						}, {queue:false, duration: _speed, complete: function(){
							$(this).css('opacity','auto');
						}});
					}
					if(_this.options.changeHeight){
						_el.parent().animate({
							height: _list.eq(_active).outerHeight(true)
						}, {queue:false, duration:_speed});
					}
					if (_this.options.switcher) _switcher.removeClass('active').eq(_active).addClass('active');
					_last = _active;
					if(titleReplace){
						titleReplace.html(_el.eq(_active).data("title"));
					}
				}
				// Function for "slide"
				function scrollEl(){
					if (!_this.options.direction) _list.animate({marginLeft: -(_w * _active)}, {queue:false, duration: _speed})
					else _list.animate({marginTop: -(_h * _active)}, {queue:false, duration: _speed})
					if (_this.options.switcher && _this.options.slideElement) _switcher.removeClass('active').eq(_active/_this.options.slideElement).addClass('active');
					else{
						if (_this.options.switcher) _switcher.removeClass('active').eq(_active).addClass('active');
					}
					if(_this.options.changeHeight){
						if(_this.options.slideElement>1){
							var active_H = _list.children().eq(_active).outerHeight(true);
							for (var i = 1; i < _this.options.slideElement; i++){
								if(active_H<_list.children().eq(_active+i).outerHeight(true)){
									active_H=_list.children().eq(_active+i).outerHeight(true)
								}
							};
							_el.parent().animate({
								height: active_H
							}, {queue:false, duration:_speed});
						}else{
							_el.parent().animate({
								height: _list.children().eq(_active).outerHeight(true)
							}, {queue:false, duration:_speed});
						}
					}
					if(titleReplace){
						titleReplace.html(_el.eq(_active).data("title"));
					}
				}
				function toPrepare(){
					if ((_active == rew) && _this.options.circle) _active = -_this.options.slideElement;
					for (var i = 0; i < _this.options.slideElement; i++){
						if(_this.options.randomSlide){
							var pre_active = _active;
							if(_this.options.listOfSlides.length){
								while(pre_active == _active){
									_active = parseInt(Math.random()*(_count+1));
								}
							}
						}else{
							_active++;
						}
						if (_active > rew) {
							_active--;
							if (_this.options.disableBtn &&(_count > _wrapHolderW)) _next.addClass(_this.options.disableBtn);
						}
					}
					if (_active == rew) if (_this.options.disableBtn &&(_count > _wrapHolderW)) _next.addClass(_this.options.disableBtn);
					if (!_this.options.effect) scrollEl();
					else fadeElement();
				}
				if(_this._timer){
					_this._hold.bind('runTimer', function(){
						if(_this._t) clearTimeout(_this._t);
						_this._t = setInterval(function(){
							toPrepare();
						}, _this._timer);
					});
				}
				function toPrepareNext(){
					//if ((_active == rew) && _this.options.circle) _active = -_this.options.slideElement;
					for (var i = 0; i < _this.options.slideElement; i++){
						if(_this.options.randomSlide){
							var pre_active = _active;
							if(_this.options.listOfSlides.length){
								while(pre_active == _active){
									_active = parseInt(Math.random()*(_count+1));
								}
							}
						}else{
							_active++;
						}
						if (_active > rew) {
							_active--;
							if (_this.options.disableBtn &&(_count > _wrapHolderW)) _next.addClass(_this.options.disableBtn);
						}
					}
					if (_active == rew) if (_this.options.disableBtn &&(_count > _wrapHolderW)) _next.addClass(_this.options.disableBtn);
					if (!_this.options.effect) scrollEl();
					else fadeElement();
				}
				_next.click(function(){
					if(_this._t) clearTimeout(_this._t);
					if (_this.options.disableBtn &&(_count > _wrapHolderW)) _prev.removeClass(_this.options.disableBtn);
					toPrepareNext();
					if (_this._timer) _this._hold.trigger('runTimer');
					return false;
				});
				_prev.click(function(){
					if(_this._t) clearTimeout(_this._t);
					if (_this.options.disableBtn &&(_count > _wrapHolderW)) _next.removeClass(_this.options.disableBtn);
					//if ((_active == 0) && _this.options.circle) _active = rew + _this.options.slideElement;
					for (var i = 0; i < _this.options.slideElement; i++){
						_active--;
						if (_active < 0) {
							_active++;
							if (_this.options.disableBtn &&(_count > _wrapHolderW)) _prev.addClass(_this.options.disableBtn);
						}
					};
					if (_active == 0) if (_this.options.disableBtn &&(_count > _wrapHolderW)) _prev.addClass(_this.options.disableBtn);
					if (!_this.options.effect) scrollEl();
					else fadeElement();
					if (_this._timer) _this._hold.trigger('runTimer');
					return false;
				});
				if (_this.options.switcher) _switcher.click(function(){
					if (_this.options.event=='click'){
						if (_this.options.slideElement){
							_active = _switcher.index($(this))*_this.options.slideElement;
						}else{
							_active = _switcher.index($(this));
						}
						if(_this._t) clearTimeout(_this._t);
						if (!_this.options.effect) scrollEl();
						else fadeElement();
						if (_this._timer) _this._hold.trigger('runTimer');
					}
					return false;
				}).mouseenter(function(){
					if (_this.options.event=='hover'){
						if (_this.options.slideElement){
							_active = _switcher.index($(this))*_this.options.slideElement;
						}else{
							_active = _switcher.index($(this));
						}
						if(_this._t) clearTimeout(_this._t);
						if (!_this.options.effect) scrollEl();
						else fadeElement();
						if (_this._timer) _this._hold.trigger('runTimer');
					}
				});
				if (_this._timer) _this._hold.trigger('runTimer');
			}
		},
		stop: function(){
			var _this = this;
			if (_this._t) clearTimeout(_this._t);
		},
		play: function(){
			var _this = this;
			if (_this._t) clearTimeout(_this._t);
			if (_this._timer) _this._hold.trigger('runTimer');
		}
	}
}(jQuery));


function initClearFields()
{
	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.filterClass) o.filterClass = "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) == -1) {
				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) == -1) {
				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";
	}
}

function initBizForm()
{
//	var ErrorSets = document.getElementsByTagName("span");
//	for (var z = 0; z < ErrorSets.length; z++)
//	{
//		if (ErrorSets[z].className == "EditingFormErrorLabel")
//		{
//			ErrorSets[z].style.display = "inline";
//			ErrorSets[z].style.color = "#ff0000";
//		}
//	}
	var inputSets = document.getElementsByTagName("select");
	for (var i = 0; i < inputSets.length; i++)
	{
		if (inputSets[i].className == "TestSelection1")
		{
			if (inputSets[i].options[inputSets[i].selectedIndex].value != "Areas of Law")
			{
				var tableSets = document.getElementsByTagName("table");
				for (var x = 0; x < tableSets.length; x++)
				{
					if (tableSets[x].className == "TestSelection2")
					{
						tableSets[x].style.display = "none";
					}
				}
			}
			if (inputSets[i].options[inputSets[i].selectedIndex].value != "Careers")
			{
//				var trSets = document.getElementsByTagName("tr");
//				for (var x = 0; x < trSets.length; x++)
//				{
//					if (trSets[x].className == "TestSelection3")
//					{
//						trSets[x].style.display = "none";
//					}
//				}
				//document.getElementById("TestSelection3").style.display = "none";
				document.getElementById("TestInputArea").style.display = "none";
			}
			inputSets[i].onchange = function ()
			{
				if (this.options[this.selectedIndex].value == "Careers")
				{
//					var trSets = document.getElementsByTagName("tr");
//					for (var x = 0; x < trSets.length; x++)
//					{
//						if (trSets[x].className == "TestSelection3")
//						{
//							trSets[x].style.display = "inline";
//						}
//					}
					//document.getElementById("TestSelection3").style.display = "inline";
					document.getElementById("TestInputArea").style.display = "inline";
				}
				else
				{
					document.getElementById("TestInputFile").innerHTML = document.getElementById("TestInputFile").innerHTML;
					//document.getElementById("TestSelection3").style.display = "none";
					document.getElementById("TestInputArea").style.display = "none";
//					var trSets = document.getElementsByTagName("tr");
//					for (var x = 0; x < trSets.length; x++)
//					{
//						if (trSets[x].className == "TestSelection3")
//						{
//							trSets[x].style.display = "none";
//						}
//					}
//					alert("test1");
//					var selSetsz = document.getElementsByTagName("input");
//					for (var z = 0; z < selSetsz.length; z++)
//					{
//						if (selSetsz[z].name.indexOf("$CV$inputFile") != -1)
//						{
//							alert("test2");
//							selSetsz[z].value = "test";
//						}
//					}
					
				}
				
				if (this.options[this.selectedIndex].value == "Areas of Law")
				{
					var tableSets1 = document.getElementsByTagName("table");
					for (var j = 0; j < tableSets1.length; j++)
					{
						if (tableSets1[j].className == "TestSelection2")
						{
							tableSets1[j].style.display = "inline";
						}
		
					}
				}
				else
				{
					var tableSets1 = document.getElementsByTagName("table");
					for (var j = 0; j < tableSets1.length; j++)
					{
						if (tableSets1[j].className == "TestSelection2")
						{
							tableSets1[j].style.display = "none";
						}
		
					}
					var selSets = document.getElementsByTagName("input");
					for (var y = 0; y < selSets.length; y++)
					{
						if (selSets[y].name.indexOf("$LawArea") != -1)
						{
							selSets[y].checked = false;
						}
					}
				}
			}
		}
	}
}

function initTabs()
{
	var sets = document.getElementsByTagName("ul");
	for (var i = 0; i < sets.length; i++)
	{
		if (sets[i].className.indexOf("tabset") != -1)
		{
			var tabs = [];
			var links = sets[i].getElementsByTagName("a");
			for (var j = 0; j < links.length; j++)
			{
				if (links[j].className.indexOf("tab") != -1)
				{
					tabs.push(links[j]);
					links[j].tabs = tabs;
					var c = document.getElementById(links[j].href.substr(links[j].href.indexOf("#") + 1));

					if (c) if (links[j].className.indexOf("active") != -1) c.style.display = "block";
					else c.style.display = "none";

					links[j].onclick = function ()
					{
						var c = document.getElementById(this.href.substr(this.href.indexOf("#") + 1));
						if (c)
						{
							for (var i = 0; i < this.tabs.length; i++)
							{
								var tab = document.getElementById(this.tabs[i].href.substr(this.tabs[i].href.indexOf("#") + 1));
								if (tab)
								{
									tab.style.display = "none";
								}
								this.tabs[i].className = this.tabs[i].className.replace("active", "");
							}
							this.className += " active";
							c.style.display = "block";
							return false;
						}
					}
				}
			}
		}
	}
}
function initVerticalTabs()
{
	var sets = document.getElementsByTagName("ul");
	for (var i = 0; i < sets.length; i++)
	{
		if (sets[i].className.indexOf("tab-item-list") != -1)
		{
			var tabs = [];
			var links = sets[i].getElementsByTagName("a");
			for (var j = 0; j < links.length; j++)
			{
				if (links[j].className.indexOf("vtab") != -1)
				{
					tabs.push(links[j]);
					links[j].tabs = tabs;
					var c = document.getElementById(links[j].name.substr(links[j].name.indexOf("#") + 1));

					if (c) if (links[j].className.indexOf("active") != -1) c.style.display = "block";
					else c.style.display = "none";

					//links[j].onclick = function ()
//					{
//						var c = document.getElementById(this.href.substr(this.href.indexOf("#") + 1));
//						if (c)
//						{
//							for (var i = 0; i < this.tabs.length; i++)
//							{
//								var tab = document.getElementById(this.tabs[i].href.substr(this.tabs[i].href.indexOf("#") + 1));
//								if (tab)
//								{
//									tab.style.display = "none";
//								}
//								this.tabs[i].className = this.tabs[i].className.replace("active", "");
//							}
//							this.className += " active";
//							c.style.display = "block";
//							return false;
//						}
//					}
					//links[j].onmouseover = function ()
					links[j].onclick = function ()
					{
						var c = document.getElementById(this.name.substr(this.name.indexOf("#") + 1));
						if (c)
						{
							for (var i = 0; i < this.tabs.length; i++)
							{
								var tab = document.getElementById(this.tabs[i].name.substr(this.tabs[i].name.indexOf("#") + 1));
								if (tab)
								{
									tab.style.display = "none";
								}
								this.tabs[i].className = this.tabs[i].className.replace("active", "");
							}
							this.className += " active";
							c.style.display = "block";
							return false;
						}
					}
				}
			}
		}
	}
}

function now() { 
    return (new Date).getTime(); 
} 
jQuery.fx.prototype.custom = function( from, to, unit ) { 
    this.startTime = now(); 
    this.start = from; 
    this.end = to; 
    this.unit = unit || this.unit || "px"; 
    this.now = this.start; 
    this.pos = this.state = 0; 
 
    var self = this; 
    function t( gotoEnd ) { 
        return self.step(gotoEnd); 
    } 
 
    t.elem = this.elem; 
 
    if ( t() && jQuery.timers.push(t) && !jQuery.fx.prototype.timerId ) { 
        //timerId = setInterval(jQuery.fx.tick, 13); 
        jQuery.fx.prototype.timerId = setInterval(jQuery.fx.tick, 250); 
    } 
} 

