$c2(document).ready(function(){
	if(document.getElementById('secNav')){setHover(document.getElementById('secNav'));}
	if(document.getElementById('postCommentFormShadow')){postPopUp();}
	if(document.getElementById('memberLogin')){setFocusBlur();}
	if(document.getElementById('modal')){setFocusBlurModal();}
	if(document.getElementById('primaryNav')){setNavZindex();}
	if(document.getElementById('opacBoxContent')){opacBoxCufon();}
	if(document.getElementById('callOut')){callOutCufon();}
	if(document.getElementById('faq')){faqToggle();}
    if(document.getElementById('postComment')){setRating();}
    if(document.getElementById('sliderLinks')){controlSliderInit();}
    if(document.getElementById('editButton')){setEditModal();}
    if(document.getElementById('tabs')){commTabs();}
    if(document.getElementById('sortType')){commIndexSortInit();}
    if(document.getElementById('splashImage')){setHomeRotation(); opacBoxCufon();}
    if(document.getElementById('slideController')){setSearchBy();}
    
    tooltip_init();
});

function tooltip_init() {
    var tips = $('a.tooltip');
    if(tips.length > 0) {
        $('body').append('<div id="tooltip" style="display:none;"></div>');
	    tips.hover(function() {
	        $this = $(this);
	        var html = $this.find('>span').css('display','none').html();
	        var pos = $this.offset();
	        var top = $this.outerHeight() + pos.top + 3;
	        $('#tooltip').html(html).css({ display:'block', left:pos.left - 65, top:top});
	    }, function() {
	        $('#tooltip').css('display','none');
	    });
    }
}

function setSearchBy(link){
    var selectBox = $c2('.commSearchBy .SortByDirectoryDropdownList')[0];
    var all = $c2('.commLink_1')[0];
    var setLink = link || all;
    if(selectBox && setLink){
        selectBox.onchange = function(){
            setLink.onclick();
        };
    }
}

function commIndexSortInit(){
    var num;
    var x = new controlSlider();
        x.linkDiv = document.getElementById('commSliderLinks');
	    x.comm = true;
    var url = window.location.href;
    var sortTypeObj = document.getElementById('sortType');
    if(url.indexOf('?') > 0){
        var queryString = url.split('?')[1];
        var slVal = queryString.split('sl=')[1];
        var sliderLinks = document.getElementById('commSliderLinks').getElementsByTagName('a');
        for(var i=0;i<sliderLinks.length;i++){
            var linkHTML = sliderLinks[i].innerHTML.toLowerCase();
            if(linkHTML == slVal){
                x.selected = i;
            }       
        }
        
        var stVal = queryString.split('st=')[1];
        if(stVal){
            var stOpt = sortTypeObj.getElementsByTagName('option');
            if(stVal.indexOf('&')){
                stVal = stVal.split('&')[0];
                for(var i=0;i<stOpt.length;i++){
                    if(stOpt[i].value == stVal){
                        stOpt[i].selected = true;
                    }
                }
            }
        }
    }
    sortTypeObj.onchange = function(){
        var letter = x.linkDiv.getElementsByTagName('a')[x.selected].innerHTML.toLowerCase();
        indexSort(letter);
    };
    
    setHoverClass();
	x.init();
}

function indexSort(letter){
    var sortTypeObj = document.getElementById('sortType');
    var sortType = sortTypeObj.value;
    var sortLetter = letter;
    var url = window.location.href;
    var currentLocation;
    
    if(url.indexOf('?')){
        currentLocation = url.split('?')[0];
    }
    else {
        currentLocation = url;
    }
    if(sortType == 'all' && sortLetter == 'all'){
        window.location.href = currentLocation;    
    }
    else if (sortType != 'all' && sortLetter != 'all'){
        window.location.href = currentLocation + '?st=' + sortType + '&sl=' + sortLetter;
    }
    else if (sortType != 'all'){
        window.location.href = currentLocation + '?st=' + sortType;
    }
    else if (sortLetter != 'all'){
        window.location.href = currentLocation + '?sl=' + sortLetter;
    }
}

function setEditModal(){
    var modal =  $c2('#modal');
    var overlay = $c2('#overlay');
    var editModal = $c2('#editModal');
    $c2('#editButton').click(
        function(){
            $c2(overlay).css('display','block');
            $c2(modal).css('display','block');
            $c2(editModal).css('display','block');
            return false;
        }
    );
    $c2('#cancel').click(
        function(){
            $c2(overlay).css('display','none');
            $c2(modal).css('display','none');
            $c2(editModal).css('display','none');
            return false;
        }
    );
}

function controlSliderInit(){
	setHoverClass();
	var x = new controlSlider();
	x.linkDiv = document.getElementById('sliderLinks');
	x.members = true;
	x.init();
}

function setHoverClass(){
	var a = $c2('#sliderLinks a');
	a.hover(
		function(){
			$c2('#sliderLinks').toggleClass('change');
		},
		function(){
			$c2('#sliderLinks').toggleClass('change');
		}
	);
}

function controlSlider(){
	var self = this;
	this.mouseX;
	this.selected = 0;
	this.oldLeft;
	this.linkDiv;
	this.startFollow;
	this.mouseDownPos;
	this.members = false;
	this.comm = false;
	this.slideController = document.getElementById('slideController');
	this.slider = document.getElementById('slider');
	this.init = function(){
	    if(self.comm){
	        var newLeft = (24 * self.selected) + 3;
	        var newLeft = newLeft + 'px';
	        self.slideController.style.left = newLeft;
	    }
	    self.sliderLinks = self.linkDiv.getElementsByTagName('a');
		$c2(self.sliderLinks).click(function(e){
			var splitClass = this.className.split('_');
			var newPosition = (splitClass[1]-1) * 24 + 3;
			self.slideController.style.left = newPosition + 'px';
			self.mouseDownPos = self.getX(e);
			self.oldLeft = newPosition;
			self.selected = splitClass[1]-1;
			if(self.comm){
			    var letter = this.innerHTML.toLowerCase();
			    indexSort(letter);
			    return false;
			}
			if(self.members){
			    setSearchBy(this);
			}
		});
		this.slider.onmousemove = function(e){
			self.mouseX = self.getX(e);
		};
		this.slider.onclick = function(e){
			if(typeof(self.mouseDownPos) == 'undefined'){
				self.mouseDownPos = self.getObjX(self.slideController);
				if(!self.comm){
				    self.oldLeft = 3;
			    }
			    else {
			        self.oldLeft = (self.selected * 24) + 3;
			    }
			}
			self.checkMove();
			var letter = self.sliderLinks[self.selected].innerHTML.toLowerCase();
			if(self.members){
    			setSearchBy(self.sliderLinks[self.selected]);
    			self.sliderLinks[self.selected].onclick();
			}
			if(self.comm){
			    indexSort(letter);
		    }
			return false;
		};
		if(!self.comm){
		    self.slideController.style.left = '3px';
		}
		self.slideController.onmousedown = function(e){
			self.oldLeft = parseInt(self.slideController.style.left);
			self.mouseDownPos = self.getX(e);
			self.startFollow = setInterval(function(){self.checkMove();}, 30);
	        document.onmouseup = function(){
		        if(typeof(self.startFollow) != 'undefined'){
			        clearInterval(self.startFollow);
		        }
		        var letter = self.sliderLinks[self.selected].innerHTML.toLowerCase();
			    if(self.members){
    			    self.sliderLinks[self.selected].onclick();
    			    setSearchBy(self.sliderLinks[self.selected]);
		        }
		        if(self.comm){
			        indexSort(letter);
		        }
		        document.onmouseup = null;
	        };
			return false;
		};
	};
	this.checkMove = function(){
		var change = -(self.mouseDownPos - self.mouseX);
		var number = Math.round(change/24);
		var newLeftVal = number * 24 + self.oldLeft;
		self.selected = Math.round(newLeftVal/24);
		if(newLeftVal >= 3 && newLeftVal <= 648){
			self.slideController.style.left = newLeftVal + 'px';
		}
	};
	this.getX = function(e){
		var x;
		if(!e){e = window.event;}
		x = e.clientX;
		return x;
	};
	this.getObjX = function(obj){
		var elemX = 0;
		do{
			elemX += obj.offsetLeft;
		} while (obj = obj.offsetParent);
		return elemX;
	}
}

function commTabs() {
	var self = this;
	var ul = document.getElementById('tabs');
	var li = ul.getElementsByTagName('li');
	var as = ul.getElementsByTagName('a');
	var areaWidth = 700;
	this.getWidth = function() {
		var width = 0;
		for(var x=0;x<as.length;x++) {
			as[x].style.paddingLeft = 0;
			as[x].style.paddingRight = 0;
			as[x].style.textAlign = "center";
			width += as[x].offsetWidth;
		}
		return width;
	};
	var gap = areaWidth - as.length + 1 - this.getWidth();
	if(gap > 0 && gap < 100) {
	    li[li.length - 1].style.border = "none";
		var growth = Math.ceil(gap / as.length);
		for(var x=0;x<as.length;x++) {
			gap = gap - growth;
			as[x].style.width = as[x].offsetWidth + growth + "px";
			if(gap < growth) {
				growth = gap;
			}
			if(gap === 0) {
				break;
			}
		}
	}
	else{
	    for(var x=0;x<as.length;x++){
	        as[x].style.paddingLeft = '4px';
	        as[x].style.paddingRight = '4px';
	    }
	}
}

function setRating(){
	var rateHeader = document.getElementById('rateArticle');
	var ratingUL = rateHeader.getElementsByTagName('ul')[0];
	var ratingLI = ratingUL.getElementsByTagName('li');
	var hiddenInput = document.getElementById('postCommentFormHidden');
	for(var i =0; i<ratingLI.length; i++){
		ratingLI[i].onclick = function(){
			var val = this.getAttribute('rel');
			var name = 'stars'+val;
			ratingUL.className = 'ratingScale ' + name;
			hiddenInput.value = val;
			cp_registeredSync(val); //CH 091230
			return false;
		}
	}
}

function validateComment(){
    var commentBlock = document.getElementById('postCommentForm');
    var textBox = commentBlock.getElementsByTagName('textarea')[0];
    var hiddenInput = document.getElementById('postCommentFormHidden');
    if(textBox.value != '' && hiddenInput.value != 0){
        return true;
    }
    else{
        var commentError = document.getElementById('commentError');
        commentError.innerHTML = 'Please select a rating and enter a comment!';
        return false;
    }
}

function faqToggle(){
	var questions = $c2('.question');
	if(questions.length > 0){
		var openLinks = $c2('.openAnswerLink');
		var closeLinks = $c2('.closeAnswer a');
		for(var i=0; i<openLinks.length; i++){
			openLinks[i].onclick = function(){
				if($c2(this).parent('.question')[0].className.match('openFAQ')){
					$c2(this).parent('.question').toggleClass('openFAQ');
				}
				else{
					for(var j=0; j<questions.length; j++){
						$c2(questions[j]).removeClass('openFAQ');
					}
					$c2(this).parent('.question').addClass('openFAQ');
				}
				return false;
			};
		}
		for(var i=0; i<closeLinks.length; i++){
			closeLinks[i].onclick = function(){
				var x = $c2(this).parents('.question')[0];
				$c2(x).removeClass('openFAQ');
				return false;
			};
		}
	}
}

function setNavZindex(){
	$c2('#primaryNav li.selected').next().next().addClass('noChange');
	var noChange = $c2('.noChange')[0];
	$c2('#primaryNav li').hover(
		function(){
			var curClass = $c2(this).attr('class');
			if(!curClass.match('noChange')){
				$c2(this).prev().addClass('highIndex');
			}
		},
		function(){
			$c2(this).prev().removeClass('highIndex');
		}
	);
}

function setHover(obj){
	var li = $c2('#secNav>li');
	$c2(li).hover(
		function(){
			$c2(this).addClass('hover');
		},
		function(){
			$c2(this).removeClass('hover');
		}
	);
}

function postPopUp() {
    setLimit();
	var postCommentButton = document.getElementById('postComment');
	var postPopUp = document.getElementById('postCommentFormShadow');
	var cancelButton = document.getElementById('cancel');
	postPopUp.style.display = 'none';
	// CH 100125 - adding functionality if href isn't specified.
	if(!postCommentButton.onclick || 
	    postCommentButton.onclick == '' ||
	    postCommentButton.onclick == null){
	    postCommentButton.onclick = function() {
		    if(postPopUp.style.display == 'none'){
			    postPopUp.style.display = 'block';
			    $(postCommentButton).addClass('selected');
		    }
		    else{
			    postPopUp.style.display = 'none';
			    $c2(postCommentButton).removeClass('selected');
		    }
		    return false;
	    }
	}
	cancelButton.onclick = function() {
		if(postPopUp.style.display == 'none'){
			postPopUp.style.display = 'block';
			$c2(postCommentButton).addClass('selected');
		}
		else{
			postPopUp.style.display = 'none';
			$c2(postCommentButton).removeClass('selected');
		}
		return false;
	}
}

function setFocusBlur(){
	var nameInput = $c2('#memberLogin .username')[0];
	if(nameInput){
	    nameInput.onfocus = function(){
		    inputFocus(nameInput, 'text-align:left', '');
	    };
	    nameInput.onblur = function(){
		    inputBlur(nameInput, 'text-align:center', 'Username');
	    };
	}
}

function setFocusBlurModal(){
	var nameInput = $c2('#logIn .username')[0];
	if(nameInput){
	    nameInput.onfocus = function(){
		    inputFocus(nameInput, 'text-align:left', '');
	    };
	    nameInput.onblur = function(){
		    inputBlur(nameInput, 'text-align:center', 'Username');
	    };
	};
}
function inputFocus(object, css, defaultValue) {
    var val;
    if(defaultValue) val = defaultValue;
    else val = object.defaultValue;
    if(val == object.value) {
        object.value = "";
    }
    if(css) renderCSS(object, css);
}
function inputBlur(object, css, defaultValue) {
    if(object.value.replace(/\s/g,"").length < 1) {
        var val;
        if(defaultValue) val = defaultValue;
        else val = object.defaultValue;
        object.value = val;
        if(css) renderCSS(object, css);
    }
}
function renderCSS(object, css) {
    var attributes = css.replace(/\s/g,"").split(';');
    for(var x=0;x<attributes.length;x++) {
		if(attributes[x].indexOf(':') > 0) {
			var elem = attributes[x].split(':');
			$c2(object).css(elem[0],elem[1]);
		}
    }
}

function initPassword(oldObject, disableRevert) {
	var newObject = document.createElement('input');
	newObject.type = "password";
	if(oldObject.name) { newObject.name = oldObject.name; }
	if(oldObject.id) { newObject.id = oldObject.id; }
	if(oldObject.className) { newObject.className = oldObject.className; }
	if(oldObject.tabIndex) { newObject.tabIndex = oldObject.tabIndex; }
	newObject.initText = oldObject.value;
	newObject.style.color = "#333";
	// c2.bindEvent(newObject, 'keypress', function(event) {
	//  if(!enterKey(event,'accountLoginButton')) {
	//   c2.preventDefault(event);
	//  }
	// });
	if(disableRevert !== true) {
		$(newObject).bind('blur', function() {
			if(this.value.length < 1) {
				var textObject = document.createElement('input');
				if(newObject.name) { textObject.name = newObject.name; }
				if(newObject.id) { textObject.id = newObject.id; }
				if(newObject.className) { textObject.className = newObject.className; }
				if(newObject.tabIndex) { textObject.tabIndex = newObject.tabIndex; }
				textObject.style.color = "#969696";
				textObject.value = newObject.initText;
				textObject.onfocus = function() {
					initPassword(this);
				};
				setTimeout(function() {
					newObject.parentNode.replaceChild(textObject,newObject);
				}, 10);
			}
		});
	}
	oldObject.parentNode.replaceChild(newObject,oldObject);
	setTimeout(function() { newObject.focus(); }, 10);
	return newObject;
}

function initPasswordEnter(oldObject,buttonid) {
	var newObject = document.createElement('input');
	newObject.type = "password";
	if(oldObject.name) { newObject.name = oldObject.name; }
	if(oldObject.id) { newObject.id = oldObject.id; }
	if(oldObject.className) { newObject.className = oldObject.className; }
	if(oldObject.tabIndex) { newObject.tabIndex = oldObject.tabIndex; }
	newObject.initText = oldObject.value;
	newObject.style.color = "#333";
	newObject.style.textAlign = 'left';
	c2.bindEvent(newObject, 'keypress', function(event) {
		var button = document.getElementById(buttonid);
		if(!enterKey(event,button)) {
			c2.preventDefault(event);
		}
	});
	oldObject.parentNode.replaceChild(newObject,oldObject);
	setTimeout(function() { newObject.focus(); }, 10);
	return newObject;
}

var c2 = {
	$: function(id) {
		return document.getElementById(id);
	},
	bindEvent: function(object, trigger, func) {
		if( object.addEventListener ) {
		  object.addEventListener(trigger,func,false);
		} else if( object.attachEvent ) {
		  object.attachEvent('on'+trigger,func);
		}
	},
	unbindEvent: function(object, trigger, func) {
		if( object.removeEventListener ) {
			object.removeEventListener(trigger,func,false);
		} else if( object.detachEvent ) {
			object.detachEvent('on'+trigger,func);
		}
	},
	preventDefault: function(e) {
		if(e.preventDefault) {
			e.preventDefault();
		}
		e.returnValue = false;
	}
};

function enterKey(e,obj) {
	if(obj) {
		var key = getKey(e);;
		if (key && key == 13) {
			//eval(code);
			var object = obj;
			if(object.tagName == 'A') {
				var href = object.href.replace(window.location,"");
				if(href.length > 1) {
					eval(unescape(object.href.replace(/^javascript:/i,"")));
				}
				else {
					object.onclick();
				}
				return false;
			}
			else if(object.tagName == 'INPUT' || object.tagName == 'BUTTON') {
			    object.click();
				return false;
			}
		}
	}
	return true;
}

function getKey(e) {
	if(!e) e = window.event;
	var key = e.which;
	if(!key) key = e.keyCode;
	return key;
}

function setLimit(){
	var textarea = new textLimit();
	textarea.input = $c2('.commentTextBox')[0];
	textarea.remaining = document.getElementById('charCount');
	textarea.limit = 500;
	textarea.init();
}

function textLimit() {
	this.limit = 200;
	this.regex = /<[^ ]\/?[^>]+>/gi;
	this.allowOver = false;
	this.input = null;
	this.count = null;
	this.remaining = null;
	this.init = function() {
		var self = this;
		this.input.onkeydown = function(event) {
			if(this.value.length >= self.limit) {
				if(document.selection && document.selection.createRange().text.length > 0) {
					return true;
				}
				else if(self.input.selectionEnd - self.input.selectionStart > 0) {
					return true;
				}
				var key = getKey(event);
				if(key > 46 || key == 13 || key == 32) {
					return false;
				}
			}
		}
		this.input.onkeyup = function() {
			var val = self.clean(this.value);
			if(!self.allowOver && val.length > self.limit) {
				val = val.substr(0, self.limit);
			}
			if(this.value != val) {
				this.value = val;
				self.input.scrollTop = self.input.scrollHeight;
			}
			self.setCount(val.length);
			self.setRemaining(val.length);
		};
		setTimeout(function() {
				self.setCount(self.input.value.length);
				self.setRemaining(self.input.value.length);
			}, 10);
	}
	this.setCount = function(length) {
		if(this.count) {
			this.count.innerHTML = length;
			this.adjustStyle(this.count, length);
		}
	}
	this.setRemaining = function(length) {
		if(this.remaining) {
			this.remaining.innerHTML = this.limit - length;
			this.adjustStyle(this.remaining, length);
		}
	}
	this.adjustStyle = function(object, length) {
		if(length > this.limit) {
			$(object).addClass('error');
		}
		else {
			$(object).removeClass('error');
		}
	};
	this.clean = function(value) {
		return value.replace(this.regex, '');
	}
}

function opacBoxCufon(){
	var h1 = $c2('.opacBoxContent h1'); 
	Cufon.replace(h1, {fontFamily: 'ITC Lubalin Graph'});
}
function callOutCufon(){
	var h3 = $c2('#callOut h3.homepageH3');
	Cufon.replace(h3, {fontFamily: 'ITC Lubalin Graph Std' });
}
function opacBoxFullCufon(){
	var h1 = $c2('#opacBoxFull h1');
	Cufon.replace(h1, {fontFamily: 'ITC Lubalin Graph'});
}

function showModal(show){
    var overlay = document.getElementById('overlay');
    var modal = document.getElementById('modal');
    if(modal && overlay){
        /*var specs = modal.childNodes;
        for (var i = 0; i < specs.length; i++)
        {
            if (specs[i].id != 'modalUtility')
                specs[i].style.display = 'none';
        }*/
        overlay.style.display = modal.style.display = (show) ? 'block' : 'none';
    }
    //return false;
}
function showSpecModal(show, id)
{
    var overlay = document.getElementById('overlay');
    var modal = document.getElementById('modal');
    var spec = document.getElementById(id);
    if(overlay && modal && spec){
        var specs = modal.childNodes;
        for (var i = 0; i < specs.length; i++)
        {
            if (specs[i].id != 'modalUtility')
            {
                if(specs[i].style)
                {
                specs[i].style.display = 'none';}
            }
        }
        overlay.style.display = modal.style.display = (show) ? 'block' : 'none';
        spec.style.display = (show) ? 'block' : 'none';
    }
    //return false;
}
/*function showModalLogin(show){
    var overlay = document.getElementById('overlay');
    var modal = document.getElementById('modalLogin');
    if(modal && overlay){
        overlay.style.display = modal.style.display = (show) ? 'block' : 'none';
    }
    return false;
}*/
/*function btnLogin_Click()
{
    var inpUsername = document.getElementById('inpUsername');
    var inpPassword = document.getElementById('inpPassword');
    
    loginCheck(inpUsername.value, inpPassword.value);

    return false;
}
function loginCheck(username, password)
{
    doJson(
        '/loginCheck.asmx/LoginCheck',
        "{'username':'" + username + "','password':'" + password + "'}",
        function(result, textStatus){
            if(result)
            {
                // test passed, submit form.
                var inpU = document.getElementById('inpU');
                var inpP = document.getElementById('inpP');
                inpU.value = username;
                inpP.value = password;

                $c2('#loginForm').submit();
            }
            else
            {
                 // invalid username password combination.
            }
        },
        function(request, status, err){
            alert('error');
        },
        function(XMLHttpRequest, textStatus){
            //alert(textStatus);
        });
}*/
function doJson(wsUrl, wsData, fncSuccess, fncError, fncComplete)
{
    $c2.ajax({
        async: true,
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: wsUrl,
        data: wsData,
        dataType: "json",
        success: fncSuccess,
        error: fncError,
        complete: fncComplete
    });
}
function fb_Setup(fbId, hdnId)
{
    var fb = document.getElementById(fbId);
    if(!fb){
        return;
    }    
    var inputs = fb.getElementsByTagName('input');
    for(var i = 0; i < inputs.length; i++)
    {
        if(inputs[i].type)
        {
            if(inputs[i].type.toLowerCase() == 'submit')
            {
                inputs[i].onclick = function(){
                    var hdn = document.getElementById(hdnId);
                    if(!hdn)
                        return;
                    hdn.value = '1';
                }
                break;
            }
        }
    }
}

function setHomeRotation(){
	var x = new slideshow();
	x.frame = document.getElementById('splashImage');
	x.init();
}

function slideshow(frame, next, previous, togglePlay) {
	var self = this;
	this.frame = frame;
	this.next = next;
	this.previous = previous;
	this.togglePlay = togglePlay;
	this.options = {slideSpeed : 5000, fadeSpeed : 25, fadeChange : 5};
	this.anim = {paused:false,rotate:null,fade:null,number:0,previous:0,count:0,opacity:0};
	this.init = function() {
	
		this.frame.style.position = "relative";
		
		var slides = this.frame.getElementsByTagName('li');
		this.anim.count = slides.length;
		if(slides.length > 1) {
			for(var x=0;x<slides.length;x++) {
				slides[x].style.position = "absolute";
				slides[x].style.top = "0px";
				slides[x].style.left = "0px";
				if(x > 0) {
					slides[x].style.zIndex = "100";
					slides[x].style.opacity = "0";
					slides[x].style.filter = "alpha(Opacity=0)";
				}
				else {
					slides[0].style.zIndex = "200";
				}
			}
			if(!this.anim.paused) {
				this.callInterval();
			}
		}

		if(this.next) {
			this.next.onclick = function() {
				self.change('++');
				return false;
			};
		}
		if(this.previous) {
			this.previous.onclick = function() {
				self.change('--');
				return false;
			};
		}
		if(this.togglePlay) {
			this.togglePlay.onclick = function() {
				if(!self.anim.paused) {
					clearTimeout(self.anim.rotate);
					self.anim.paused = true;
					this.className = "";
					// uncomment if jQuery
					//$(this).removeClass('slidePause');
				}
				else {
					self.callInterval();
					self.anim.paused = false;
					this.className = "slidePause";
					// uncomment if jQuery
					//$(this).addClass('slidePause');
				}
				return false;
			};
		}

	};
	
	this.callInterval = function() {
		this.anim.rotate = setTimeout(function() { self.change('++'); }, this.options.slideSpeed);
	};
	
	this.state = function(num,state) {
		var node = this.frame.getElementsByTagName('li')[num];
		switch(state) {
			case 1:
				node.style.zIndex = "100";
				node.style.opacity = "0";
				node.style.filter = "alpha(Opacity=0)";
				break;
			case 2:
				node.style.zIndex = "150";
				node.style.opacity = "1";
				node.style.filter = "alpha(Opacity=100)";
				break;
			case 3:
				node.style.zIndex = "200";
				node.style.opacity = (this.anim.opacity / 100);
				node.style.filter = "alpha(Opacity="+this.anim.opacity+")";
				break;
		}
	};
	
	this.bounds = function(num) {
		if(num >= this.anim.count) {
			num = 0;
		}
		if(num < 0) {
			num = this.anim.count - 1;
		}
		return num;
	};

	this.change = function(arg) {
		clearInterval(this.anim.fade);
		clearTimeout(this.anim.rotate);
	/*	
		if(this.anim.previous != this.anim.number) {
			// hide the previous slide
			this.state(this.anim.previous,1);
			// set the previous slide to the current
			this.anim.previous = this.anim.number;
			this.anim.opacity = 50;
		}
	*/
		// increment the current slide
		if(arg == '++') {
			this.anim.number = this.anim.number + 1;
		}
		else if(arg == '--') {
			this.anim.number = this.anim.number - 1;
		}
		else {
			this.anim.number = Number(arg);
		}
		this.anim.number = this.bounds(this.anim.number);
		
	//	alert(this.anim.number);
	//	alert(this.anim.previous);
		
		// set the slides to the correct states
		this.state(this.anim.previous,2);
		this.state(this.anim.number,3);
		
		this.anim.fade = setInterval(function() {self.fade(); }, this.options.fadeSpeed);
	};

	this.fade = function() {
		var nextNode = this.frame.getElementsByTagName('li')[this.anim.number];
		this.anim.opacity = this.anim.opacity + this.options.fadeChange;
		if(this.anim.opacity >= 100) {
			nextNode.style.opacity = "1";
			nextNode.style.filter = "alpha(Opacity=100)";
			// hide the previous slide
			this.state(this.anim.previous,1);
			
			this.anim.opacity = 0;
			this.anim.previous = this.anim.number;
			clearInterval(this.anim.fade);
		//	setSelectedClass(this.anim.number);
		//	if(this.anim.status == 0) { had to comment this out...not sure where this.anim.status is being set.
				this.anim.rotate = setTimeout(function() { self.change('++'); }, this.options.slideSpeed); //Passed '++' as a parameter to self.change();
		//	} had to comment this out...not sure where this.anim.status is being set.
		}
		else {
			nextNode.style.opacity = (this.anim.opacity / 100);
			nextNode.style.filter = "alpha(Opacity="+this.anim.opacity+")";
		}
	};
}
