$(document).ready(function(){
	$('.visual').slideShow({
		slideEl:'div.item',
		linkNext:'a.next',
		linkPrev:'a.prev',
		numElement:'.items a',
		duration:500,
		autoSlideShow:true,
		switchTime:5000,
		event:'click',
		currentEl:'span.current',
		allEl:'span.all'
	});
});

/* 
* jQuery slideShow v1.2.0
*/

jQuery.fn.slideShow = function(_options){
	// defaults options
	var _options = jQuery.extend({
		slideEl:'div.slide',
		linkNext:'a.next',
		linkPrev:'a.prev',
		linkPause:'a.pause',
		numElement:'div.slideNav li a',
		duration:500,
		autoSlideShow:false,
		switchTime:3000,
		noCicle:false,
		disableClass:'no-active',
		event:'click',
		currentEl:'span.cur',
		allEl:'span.all'
	},_options);
	return this.each(function(){
		var _THIS = jQuery(this);
		var _slideEl = $(_options.slideEl, _THIS);
		
		var _linkNext = $(_options.linkNext, _THIS);
		var _linkPrev = $(_options.linkPrev, _THIS);
		var _linkPause = $(_options.linkPause, _THIS);
		var _numElement = $(_options.numElement, _THIS);
		var _currentEl = $(_options.currentEl, _THIS);
		var _allEl = $(_options.allEl, _THIS)

		var _duration = _options.duration;
		var _switchTime = _options.switchTime;
		var _numElActive, _timer = false, _hover = false, _current = 0, _next = 0, _pause = true;
		
		if (!_slideEl.filter('.active').length) {
			_slideEl.eq(0).addClass('active');
			_current = 0;
		} else {
			_current = _slideEl.index(_slideEl.filter('.active'));
		}
		_slideEl.not(".active").hide();
		
		if ($(_numElement).length && _options.numElement) activeNumEl();
		if (_options.autoSlideShow) {
			_pause = false;
			_timer = setTimeout(function(){nextEl()},_switchTime);
			if (_linkPause.length && _options.linkPause) _linkPause.addClass('play')	
			contentHover();
		}
		if (_options.currentEl && _currentEl.length) {
			_allEl.html(_slideEl.length);
			currentNum();
		}
		if (_linkNext.length && _options.linkNext) {
			_linkNext.click(function(){
				nextEl();
				return false;
			});
		}
		if (_options.noCicle) {
			_linkPrev.addClass('prev-'+_options.disableClass);
		}
		if (_linkPrev.length && _options.linkPrev) {	
			_linkPrev.click(function(){
				_linkNext.removeClass('next-'+_options.disableClass);
				if (!_slideEl.is(':animated') && !$(this).hasClass('prev-'+_options.disableClass)) {
					if (_timer) clearTimeout(_timer);
					_next = _current-1;
					if (_next < 0) _next = _slideEl.length-1;
					if (_options.noCicle && _next-1 < 0) {
						$(this).addClass('prev-'+_options.disableClass);
					}
					fadeElement();
					activeNumEl();
					pauseCode();
				}
				return false;
			});
		}
		if (_numElement.length && _options.numElement) {
			_numElement.bind(_options.event, function(){
				if (!_slideEl.is(':animated')) {
					_next = _numElement.index($(this));
					_linkNext.removeClass('next-'+_options.disableClass);
					_linkPrev.removeClass('prev-'+_options.disableClass);
					if (_options.noCicle && _next+1 >= _slideEl.length) _linkNext.addClass('next-'+_options.disableClass);
					if (_options.noCicle && _next-1 < 0) _linkPrev.addClass('prev-'+_options.disableClass);
					if (_timer) clearTimeout(_timer);
					if (!_slideEl.eq(_next).hasClass("active")){
						fadeElement();
						activeNumEl();
						pauseCode();
					}
				}
				return false;
			});
		}
		if (_linkPause.length && _options.linkPause) {
			_linkPause.click(function(){
				if (!_pause) {
					$(this).removeClass('play');
					clearTimeout(_timer);
					_pause = true;
				} else {
					$(this).addClass('play');
					_timer = setTimeout(function(){nextEl()},_switchTime);
					_pause = false;
				}
				return false;
			});
		}
		function fadeElement(){
			if (_current != _next) {
				_slideEl.removeClass('active');
				_slideEl.eq(_current).addClass('hide');
				_slideEl.eq(_next).fadeIn(_duration, function(){
					_slideEl.filter('.hide').hide().removeClass('hide');
				}).addClass('active');
				_current = _next;
				if (_options.currentEl && _currentEl.length) currentNum();
			}
		};
		function currentNum() {
			_currentEl.html(_current+1);
		}
		function activeNumEl() {
			_numElement.parent().removeClass("active");
			_numElement.eq(_current).parent().addClass("active");
		};
		function nextEl(){
			_linkPrev.removeClass('prev-'+_options.disableClass);
			if (!_slideEl.is(':animated') && !_linkNext.hasClass('next-'+_options.disableClass)) {
				if (_timer) clearTimeout(_timer);
				_next = _current+1;
				if (_next == _slideEl.length) _next = 0;
				if (_options.noCicle && _next+1 >= _slideEl.length) {
					_linkNext.addClass('next-'+_options.disableClass);
				}
				fadeElement();
				activeNumEl();
				pauseCode();
			}
		};
		function pauseCode(){
			if (!_pause) {
				if (_linkPause.length && _options.linkPause) {
					if (_linkPause.hasClass('play')) {
						_timer = setTimeout(function(){nextEl()},_switchTime);
					}
				}else {
					_timer = setTimeout(function(){nextEl()},_switchTime);
				}
			}
		}
		function contentHover() {
			_hover = true;
			_slideEl.mouseenter(function() {
				if (_timer) clearTimeout(_timer);
			}).mouseleave(function(){
				pauseCode();
			});
		}
	});
}

function initPage(){
	var object = document.getElementById('breadcrumbs').getElementsByTagName('li');
	object[object.length-1].className += ' last';
}
if (window.addEventListener)
	window.addEventListener("load", initPage, false);
else if (window.attachEvent)
	window.attachEvent("onload", initPage);


/* custom select */
var _selectHeight = 36;
var inputs = new Array();
var selects = new Array();
var labels = new Array();
var radios = new Array();
var radioLabels = new Array();
var checkboxes = new Array();
var checkboxLabels = new Array();
var buttons = new Array();
var selects = new Array();
var all_selects = false;
var active_select = null;
var selectText = "please select";

function is_mac(){
	if (navigator.appVersion.indexOf("Safari") != -1){if(!window.getComputedStyle){return true;}}
	return false;
}
function initCastomForms(){
	if(!document.getElementById){return false;}
	getElements();
	separateElements();
	replaceSelects();
	var _selects = document.getElementsByTagName('select');
	var _SelctClassName = [];
	if (_selects){
		for (var i = 0; i < _selects.length; i++){
			if (_selects[i].className != '' && _selects[i].className != 'outtaHere')
				_SelctClassName[i] = ' drop-'+_selects[i].className;
		}
		for (var i = 0; i < _SelctClassName.length; i++){
			var _selectDrop = document.getElementById('optionsDiv'+i);
			if (_selectDrop){
				if (_SelctClassName[i]) 
					_selectDrop.className += _SelctClassName[i];
			}
		}
	}
}
// getting all the required elements
function getElements(){
	var _frms = document.getElementsByTagName("form");
	for (var nf = 0; nf < _frms.length; nf++){
		if(_frms[nf].className.indexOf("default") == -1){
			var a = document.forms[nf].getElementsByTagName("input");
			for(var nfi = 0; nfi < a.length; nfi++){
				inputs.push(a[nfi]);
			}
			var b = document.forms[nf].getElementsByTagName("label");
			for(var nfl = 0; nfl < b.length; nfl++){
				labels.push(b[nfl]);
			}
			var c = document.forms[nf].getElementsByTagName("select");
			for(var nfs = 0; nfs < c.length; nfs++){
				selects.push(c[nfs]);
			}
		}
	}
}
// separating all the elements in their respective arrays
function separateElements(){
	var r = 0; var c = 0; var t = 0; var rl = 0; var cl = 0; var tl = 0; var b = 0;
	for (var q = 0; q < inputs.length; q++){
		if((inputs[q].type == "submit") || (inputs[q].type == "button")){
			buttons[b] = inputs[q]; ++b;
		}
	}
}
function replaceSelects(){
	for(var q = 0; q < selects.length; q++){
	if (!selects[q].replaced && selects[q].offsetWidth && selects[q].className.indexOf("default") == -1){
		selects[q]._number = q;
		//create and build div structure
		var selectArea = document.createElement("div");
		var left = document.createElement("span");
		left.className = "left";
		selectArea.appendChild(left);
		var disabled = document.createElement("span");
		disabled.className = "disabled";
		selectArea.appendChild(disabled);
		selects[q]._disabled = disabled;
		var center = document.createElement("span");
		var button = document.createElement("a");
		var text = document.createTextNode(selectText);
		center.id = "mySelectText"+q;
		var stWidth = selects[q].offsetWidth;
		selectArea.style.width = stWidth + "px";
		if (selects[q].parentNode.className.indexOf("type2") != -1){
			button.href = "javascript:showOptions("+q+",true)";
		} else{button.href = "javascript:showOptions("+q+",false)";}
		button.className = "selectButton";
		selectArea.className = "selectArea";
		selectArea.className += " " + selects[q].className;
		selectArea.id = "sarea"+q;
		center.className = "center";
		center.appendChild(text);
		selectArea.appendChild(center);
		selectArea.appendChild(button);
		//hide the select field
		selects[q].className += " outtaHere";
		//insert select div
		selects[q].parentNode.insertBefore(selectArea, selects[q]);
		//build & place options div
		var optionsDiv = document.createElement("div");
		var optionsListParent = document.createElement("div");
		optionsListParent.className = "select-center";
		var optionsListParent2 = document.createElement("div");
		optionsListParent2.className = "select-center-right";
		var optionsList = document.createElement("ul");
		optionsDiv.innerHTML += "<div class='select-top'><div class='select-top-left'></div><div class='select-top-right'></div></div>";
		optionsListParent.appendChild(optionsListParent2);
		optionsListParent.appendChild(optionsList);
		optionsDiv.appendChild(optionsListParent);
		selects[q]._options = optionsList;
		optionsDiv.style.width = stWidth + "px";
		optionsDiv._parent = selectArea;
		optionsDiv.className = "optionsDivInvisible";
		optionsDiv.id = "optionsDiv"+q;
		populateSelectOptions(selects[q]);
		optionsDiv.innerHTML += "<div class='select-bottom'><div class='select-bottom-left'></div><div class='select-bottom-right'></div></div>";
		document.getElementsByTagName("body")[0].appendChild(optionsDiv);
		selects[q].replaced = true;
		}
	all_selects = true;
	}
}
//collecting select options
function populateSelectOptions(me){
	me._options.innerHTML = "";
	for(var w = 0; w < me.options.length; w++){
		if(me.options[w].title.indexOf("title") == -1){
			var optionHolder = document.createElement('li');
			var optionLink = document.createElement('a');
			var optionTxt;
			if (me.options[w].title.indexOf('image') != -1){
				optionTxt = document.createElement('img');
				optionSpan = document.createElement('span');
				optionTxt.src = me.options[w].title;
				optionSpan = document.createTextNode(me.options[w].text);
			} else{optionTxt = document.createTextNode(me.options[w].text);}
			optionLink.href = "javascript:showOptions("+me._number+"); selectMe('"+me.id+"',"+w+","+me._number+");";
			if (me.options[w].title.indexOf('image') != -1){
				optionLink.appendChild(optionTxt);
				optionLink.appendChild(optionSpan);
			}else{optionLink.appendChild(optionTxt);}
			optionHolder.appendChild(optionLink);
			me._options.appendChild(optionHolder);
			//check for pre-selected items
			if(me.options[w].selected){
				selectMe(me.id,w,me._number);
			}
		}
		else if(me.options[w].selected)
			selectMe(me.id,w,me._number);
	}
	if (me.disabled){me._disabled.style.display = "block";}
	else{me._disabled.style.display = "none";}
}
//selecting me
function selectMe(selectFieldId,linkNo,selectNo){
	selectField = selects[selectNo];
	for(var k = 0; k < selectField.options.length; k++){
		if(k==linkNo){selectField.options[k].selected = true;}
		else{selectField.options[k].selected = false;}
	}
	//show selected option
	textVar = document.getElementById("mySelectText"+selectNo);
	var newText;
	var optionSpan;
	if (selectField.options[linkNo].title.indexOf('image') != -1){
		newText = document.createElement('img');
		newText.src = selectField.options[linkNo].title;
		optionSpan = document.createElement('span');
		optionSpan = document.createTextNode(selectField.options[linkNo].text);
	}else{newText = document.createTextNode(selectField.options[linkNo].text);}
	if (selectField.options[linkNo].title.indexOf('image') != -1){
		if (textVar.childNodes.length > 1) textVar.removeChild(textVar.childNodes[0]);
		textVar.replaceChild(newText, textVar.childNodes[0]);	
		textVar.appendChild(optionSpan);	
	}else{
		if (textVar.childNodes.length > 1) textVar.removeChild(textVar.childNodes[0]);
		textVar.replaceChild(newText, textVar.childNodes[0]);	
	}
	if (selectField.onchange && all_selects){eval(selectField.onchange());}
}
//showing options
function showOptions(g){
	_elem = document.getElementById("optionsDiv"+g);
	var divArea = document.getElementById("sarea"+g);
	if (active_select && active_select != _elem){
		active_select.className = active_select.className.replace('optionsDivVisible','optionsDivInvisible');
		active_select.style.height = "auto";
		_active.className = _active.className.replace('selectAreaActive','');
	}
	if(_elem.className.indexOf("optionsDivInvisible") != -1){
		_elem.style.left = "-9999px";
		_elem.style.top = findPosY(divArea) + _selectHeight + 'px';
		_elem.className = _elem.className.replace('optionsDivInvisible','');
		_elem.className += " optionsDivVisible";
		_elem.style.left = findPosX(divArea) + 'px';
		divArea.className += ' selectAreaActive';
		_active = divArea;
		active_select = _elem;
		if(document.documentElement){document.documentElement.onclick = hideSelectOptions;}
		else{window.onclick = hideSelectOptions;}
	}
	else if(_elem.className.indexOf("optionsDivVisible") != -1){
		_elem.style.height = "auto";
		_elem.className = _elem.className.replace('optionsDivVisible','');
		_elem.className += " optionsDivInvisible";
		divArea.className = divArea.className.replace('selectAreaActive','');
	}
}
_active = false;
function hideSelectOptions(e){
	if(active_select){
		if(!e) e = window.event;
		var _target = (e.target || e.srcElement);
		if(isElementBefore(_target,'selectArea') == 0 && isElementBefore(_target,'optionsDiv') == 0){
			active_select.className = active_select.className.replace('optionsDivVisible', '');
			active_select.className = active_select.className.replace('optionsDivInvisible', '');
			active_select.className += " optionsDivInvisible";
			_active.className = _active.className.replace('selectAreaActive','');
			active_select = false;
			if(document.documentElement){document.documentElement.onclick = function(){};}
			else{window.onclick = null;}
		}
	}
}
function isElementBefore(_el,_class){
	var _parent = _el;
	do{_parent = _parent.parentNode;}
	while(_parent && _parent.className != null && _parent.className.indexOf(_class) == -1)
		if(_parent.className && _parent.className.indexOf(_class) != -1){return 1;}
	else{return 0;}
	
}
function findPosY(obj){
	var posTop = 0;
	while (obj.offsetParent){posTop += obj.offsetTop; obj = obj.offsetParent;}
	return posTop;
}
function findPosX(obj){
	var posLeft = 0;
	while (obj.offsetParent){posLeft += obj.offsetLeft; obj = obj.offsetParent;}
	return posLeft;
}
window.onload = initCastomForms;
