var toggleTree;

window.onload = function() {

	if(document.getElementById('topicTree')) {
		init_topicTree();
	}
	
	if(document.getElementById('BookClubBoxOverlay')) {
//		if(is_ie6) {
//			window.onscroll = scrollOverlay;
//		}
		init_BookClubBox();
	}
	
	if(document.getElementById('terms')) {
//		if(is_ie6) {
//			window.onscroll = scrollOverlay;
//		}
		init_terms();
	}
	
	if(document.getElementById('slideshowBank')) {
		init_slideShow();
	}
	if(document.getElementById('bookTabs')){
	    setBookTabs();
	}
	/*if(document.getElementById('reviewModal')){
	    init_review();
	}*/
}

//$(document).ready(function(){
  //  if($('.reviewText')[0]){setLimit('.reviewText', 500);}
    
 //   $('.reviewText').textLimit({ limit: 500, remaining: document.getElementById('reviewTextChars')});
    //$('#<%=txtTeamDescription.ClientID %>').textLimit({ limit: 200, remaining: document.getElementById('teamDescriptionChars') });
//});

//function init_review() {
	/*var object = document.createElement("div");
	object.id = "overlay";
	//document.getElementsByTagName('div')[0].appendChild(object);
	//document.body.appendChild(object);
	document.getElementsByTagName('form')[0].appendChild(object);*/
	
//	var object = document.getElementById('popBox');
	/*var object = document.createElement("div");
	object.id = "popBox";
	
//	object.style.height = '600px';//'300px';
	object.innerHTML = document.getElementById('reviewModal').innerHTML;
	//document.getElementsByTagName('div')[0].appendChild(object);
	//document.body.appendChild(object);
	document.getElementsByTagName('form')[0].appendChild(object);
	document.getElementById('reviewModal').innerHTML = "";*/
//}

function openReview() {
	document.getElementById('overlay').style.display = "block";
	var popBox = document.getElementById('popBox');
	popBox.style.display = "block";
	var target = findElementPos(document.getElementById('bookDetail'));
	popBox.style.top = target[1] + "px";
	popBox.style.left = target[0] + "px";
	setRating();
	if(is_ie6) {
		hideSelects();
	}
	
	//testing
//	if($('.reviewText')[0]){setLimit('.reviewText', 500);}
}
function closeReview() {
	document.getElementById('popBox').style.display = "none";
	document.getElementById('overlay').style.display = "none";
	document.getElementById('reviewModal').style.display = "none";
	if(is_ie6) {
		showSelects();
	}
	$('.reviewText').unbind();
}

function setRating(){
    var modal = document.getElementById('reviewContent');
	var ratingUL = modal.getElementsByTagName('ul')[0];
	var ratingLI = ratingUL.getElementsByTagName('li');
	var hiddenInput = document.getElementById('ctl00_ModalPlaceHolder_hdnRating');
	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;
			return false;
		}
	}
}
/* Book Information Tabs */
/* ---------------------------------------------------------------------------- */
var bookTab_current = "summary";
function bookTab_highlight(name) {
    var currentTab = document.getElementById('tab_' + bookTab_current);
    var currentContent = document.getElementById('content_' + bookTab_current);
    if (currentTab)
	    document.getElementById('tab_'+bookTab_current).className = "";
	if (currentContent)
	    document.getElementById('content_'+bookTab_current).className = "hide";
	//document.getElementById('tab_'+bookTab_current).className = "";
	//document.getElementById('content_'+bookTab_current).className = "hide";
	bookTab_current = name;
	document.getElementById('tab_'+bookTab_current).className = "selected";
	document.getElementById('content_'+bookTab_current).className = "";
}
function setBookTabs(){
    var bookTabs = document.getElementById('bookTabs');
    var tabDivs = bookTabs.getElementsByTagName('div');
    for(var x=0;x<tabDivs.length;x++){
        if(tabDivs[x].className == 'header'){
            var headerDiv = tabDivs[x];
            break;
        }
    }
    var tabs = headerDiv.getElementsByTagName('div');
    if(tabs.length>0){
        var baseLine = findElementPos(tabs[0]);
        var baseLine = baseLine[1];
        var topRow = [];
        for(var i=0;i<tabs.length;i++){
            var yPos = findElementPos(tabs[i]);
            var yPos = yPos[1];
            if(yPos == baseLine){
                topRow.push(tabs[i]);
            }
            else{
                break;
            }
        }
        stretchMenu(topRow);
    }
    bookTabs.style.visibility = 'visible';
}

function stretchMenu(menu) {
    var self = this;
    var as = menu;
    this.getWidth = function() {
        var width = 0;
        for(var x=0;x<as.length;x++) {
            width += as[x].offsetWidth;
        }
        return width;
    }
    var gap = 480 - this.getWidth();
    if(gap > 0) {
        var padding = Math.ceil(gap / (as.length*2));
        for(var x=0;x<as.length;x++) {
            gap = gap - padding;
            as[x].style.paddingRight = padding + 18 + "px";
            if(gap < padding) {
                padding = gap;
            }
            gap = gap - padding;
            as[x].style.paddingLeft = padding + 18 + "px";
            if(gap == 0) {
                break;
            }
        }
    }
}

/* Methods */
/* ---------------------------------------------------------------------------- */
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
function findElementPos(elemFind) {
	var elemX = 0;
	var elemY = 0;
	do {
		elemX += elemFind.offsetLeft;
		elemY += elemFind.offsetTop;
	} while ( elemFind = elemFind.offsetParent )
	//console.log("Found element "+elemFind+" at "+elemY+"/"+elemX);
	return Array(elemX, elemY);
}


/* Search Bar */
/* ---------------------------------------------------------------------------- */
function inputFocus(object, txt) {
	if(txt == object.value) {
		object.value = "";
	}
	object.style.color = "#333";
}
function inputBlur(object, txt) {
	if(object.value.trim() == "") {
		object.value = txt;
		object.style.color = "#b5bdc5";
	}
}
function enterKey(event,code) {
	if(!event) {
		event = window.event;
	}
	if ((event.which || event.keyCode) && ((event.which == 13) || (event.keyCode == 13))) {
		var object = document.getElementById(code);
		if(object.tagName == 'A') {
		    eval(unescape(object.href.substr(11)));
		}
		else {
		    object.click();
		}
		return false;
	}
	else {
		return true;
	}
}
function enterCancel(event){
    if(!event){
        event = window.event;
    }
    if ((event.which || event.keyCode) && ((event.which == 13) || (event.keyCode == 13))){
        return false;
    }
    return true;
}


/* Book Club Popup Section */
/* ---------------------------------------------------------------------------- */
function init_BookClubBox() {
	var object = document.createElement("div");
	object.id = "overlay";
	document.getElementsByTagName('div')[0].appendChild(object);
	var object = document.createElement("div");
	object.id = "popBox";
	object.innerHTML = document.getElementById('BookClubBoxOverlay').innerHTML;
	document.getElementsByTagName('div')[0].appendChild(object);
}
function openBookClubBox() {
	document.getElementById('overlay').style.display = "block";
	var popBox = document.getElementById('popBox');
	popBox.style.display = "block";
	var target = findElementPos(document.getElementById('BookClubBox'));
	popBox.style.top = target[1] + "px";
	popBox.style.left = target[0] + "px";
	if(is_ie6) {
		hideSelects();
	}
}
function closeBookClubBox() {
	document.getElementById('popBox').style.display = "none";
	document.getElementById('overlay').style.display = "none";
	if(is_ie6) {
		showSelects();
	}
}

/* Terms And Conditions Popup Section */
/* ---------------------------------------------------------------------------- */
function init_terms() {
	var object = document.createElement("div");
	object.id = "overlay";
	document.getElementsByTagName('div')[0].appendChild(object);
	var object = document.createElement("div");
	object.id = "termsbox";
	object.innerHTML = document.getElementById('terms').innerHTML;
	document.getElementsByTagName('div')[0].appendChild(object);
}
function terms_open() {
	document.getElementById('overlay').style.display = "block";
	var popBox = document.getElementById('termsbox');
	popBox.style.display = "block";
	if(is_ie6) {
		hideSelects();
	}
}
function terms_close() {
	document.getElementById('termsbox').style.display = "none";
	document.getElementById('overlay').style.display = "none";
	if(is_ie6) {
		showSelects();
	}
}

/* IE6 Hacks */
/* ---------------------------------------------------------------------------- */
//scrollOverlay = function() {
//	document.getElementById('overlay').style.top = document.documentElement.scrollTop + "px";
//	if(document.getElementById('termsbox')) {
//		document.getElementById('termsbox').style.marginTop = document.documentElement.scrollTop - 160 + "px";
//	}
//}
//function hideSelects() {
//	var selects = document.getElementsByTagName('select');
//	for(var x = 0; x < selects.length; x++) {
//		selects[x].style.visibility = "hidden";
//	}
//}
//function showSelects() {
//	var selects = document.getElementsByTagName('select');
//	for(var x = 0; x < selects.length; x++) {
//		selects[x].style.visibility = "visible";
//	}
//}




function init_topicTree() {
	var object = document.getElementById('topicTree');
	var spans = object.getElementsByTagName('span');
	
	for (var x = 0; x < spans.length; x++) {
		if(spans[x].className == "closed" || spans[x].className == "opened") {
			spans[x].onclick = toggleTree;
		}
	}
}


/* Browse By Topic Page */
/* ---------------------------------------------------------------------------- */
var topicTreeObject;
var topicTreeTime;
var topicTreeClick = false;
toggleTree = function() {
	topicTreeObject = this;
	if(topicTreeClick) {
		clearTimeout(topicTreeTime);
		topicTreeClick = false;
		toggleFullTree();
	}
	else {
		topicTreeClick = true;
		topicTreeTime = setTimeout('toggleTreeNow()', 200);
	}
}

function toggleTreeNow() {
	var object = topicTreeObject;
	if(object.className == "closed") {
		object.className = "opened";
		object.parentNode.className = "opened";
	}
	else {
		object.className = "closed";
		object.parentNode.className = "closed";
	}
	topicTreeClick = false;
}

function toggleFullTree() {
	var object = topicTreeObject;
	if(object.className == "closed") {
		object.className = "opened";
		object.parentNode.className = "opened";
		var lis = object.parentNode.getElementsByTagName('li');
		for (var x = 0; x < lis.length; x++) {
			if(lis[x].className == "closed") {
				lis[x].className = "opened";
			}
		}
		var spans = object.parentNode.getElementsByTagName('span');
		for (var x = 0; x < spans.length; x++) {
			if(spans[x].className == "closed") {
				spans[x].className = "opened";
			}
		}
	}
	else {
		object.className = "closed";
		object.parentNode.className = "closed";
		var lis = object.parentNode.getElementsByTagName('li');
		for (var x = 0; x < lis.length; x++) {
			if(lis[x].className == "opened") {
				lis[x].className = "closed";
			}
		}
		var spans = object.parentNode.getElementsByTagName('span');
		for (var x = 0; x < spans.length; x++) {
			if(spans[x].className == "opened") {
				spans[x].className = "closed";
			}
		}
	}
}


/* Homepage Slideshow */
/* ---------------------------------------------------------------------------- */
var SlideShowSpeed = 5000;
var swag_SScount = 1;
var swag_SSmax = 0;
var swag_SSinterval;
var swag_SSopacity = 0;
var swag_SSeffect;
var selected;
var swag_Control = true;

function init_slideShow() {
	if(document.getElementById('slideshowBank')) {
		var bankImages = document.getElementById('slideshowBank').getElementsByTagName('div');
		swag_SSmax = bankImages.length;
		if(swag_SSmax > 1) {
			document.getElementById('slideshow').getElementsByTagName('div')[0].id = "ssM";
			for(var x = 0; x < swag_SSmax; x++) {
				bankImages[x].id = "ssM" + (x+1);
			}
		
			var fadeImage = document.createElement('div');
			fadeImage.id = "fadeImage";
			document.getElementById('slideshow').appendChild(fadeImage);
		
			fadeImage.style.opacity = "0";
			fadeImage.style.filter = "alpha(Opacity=0)";
            $('.numbers span')[0].className = 'selected';
			fade_slideShow();
		}
	}
}

function fade_slideShow() {
	var fadeImage = document.getElementById('fadeImage');
	var newImage = document.getElementById('ssM'+swag_SScount);
	fadeImage.innerHTML = newImage.innerHTML;

	swag_SSeffect = setInterval('fadeIn_slideShow()', 15);
    
}

function fadeIn_slideShow() {
	swag_SSopacity++;
	var object = document.getElementById('fadeImage');
	if(swag_SSopacity < 100) {
	    swag_CountUp = false;
		object.style.opacity = swag_SSopacity * .01;
		object.style.filter = "alpha(Opacity="+swag_SSopacity+")";
	}
	else {
		clearInterval(swag_SSeffect);
		swag_CountUp = true;
		object.style.opacity = "1";
		object.style.filter = "alpha(Opacity=100)";
      
	        swag_SScount++;
	        if(swag_SScount > swag_SSmax){
			    swag_SScount = 1;
            }
		    if(swag_SScount < 1){
	            swag_SScount = swag_SSmax;
		    }
		selected = swag_SScount - 1;
		if(selected === 0){
		    selected = 4;
		}
		var spans = $('.numbers span');
		$(spans).each(function(){
		    $(this).removeClass('selected');
		});
        spans[selected-1].className = 'selected';
		var image = document.getElementById('ssM');
		image.innerHTML = object.innerHTML;
		swag_SSopacity = 0;
		object.style.opacity = "0";
		object.style.filter = "alpha(Opacity=0)";
		
		swag_SSinterval = setTimeout('fade_slideShow()', SlideShowSpeed);
	}
}

function next_slideShow() {
	clearTimeout(swag_SSinterval);
	clearInterval(swag_SSeffect);
	var object = document.getElementById('fadeImage');
	object.style.opacity = "1";
	object.style.filter = "alpha(Opacity=100)";
    
    if(swag_CountUp != true){
	    swag_SScount++;
	    if (swag_SScount > swag_SSmax){
		    swag_SScount = 1;
	    }
    }
    
	var image = document.getElementById('ssM');
	image.innerHTML = object.innerHTML;
	swag_SSopacity = 0;
	object.style.opacity = "0";
	object.style.filter = "alpha(Opacity=0)";

	fade_slideShow();
}

function previous_slideShow() {

	clearTimeout(swag_SSinterval);
	clearInterval(swag_SSeffect);
	var object = document.getElementById('fadeImage');
	object.style.opacity = "1";
	object.style.filter = "alpha(Opacity=100)";
	
	if(swag_CountUp != false){
	    swag_SScount-= 2;
	    if (swag_SScount < 1){
    		swag_SScount = swag_SSmax;
	    }
	}
	else {
	    swag_SScount--;
	    if(swag_SScount < 1){
		    swag_SScount = swag_SSmax;
	    }	
    }

    if(selected === 4 && swag_SScount === 4 && swag_CountUp === true){swag_SScount--;}
    
	var image = document.getElementById('ssM');
	image.innerHTML = object.innerHTML;
	swag_SSopacity = 0;
	object.style.opacity = "0";
	object.style.filter = "alpha(Opacity=0)";
	fade_slideShow();
}

function skip_slideShow(num) {
	clearTimeout(swag_SSinterval);
	clearInterval(swag_SSeffect);
	var object = document.getElementById('fadeImage');
	object.style.opacity = "1";
	object.style.filter = "alpha(Opacity=100)";
	
	swag_SScount = num;
	if (swag_SScount > swag_SSmax)
		swag_SScount = 1;
	if (swag_SScount < 1)
		swag_SScount = swag_SSmax;
		

	var image = document.getElementById('ssM');
	image.innerHTML = object.innerHTML;
	swag_SSopacity = 0;
	object.style.opacity = "0";
	object.style.filter = "alpha(Opacity=0)";
	
	fade_slideShow();
}

function AddClass(element, cssClass)
{
    $(element).addClass(cssClass);

}

function FormatPhoneNumber(input)
{
    var text = $(input).val();
    if (text.length == 3 || text.length == 7)
    {
        $(input).val() = text.append('-');
    }
}

function LoadSearch(ddl,searchtext){

    var dropdown = document.getElementById(ddl);
    var searchtxt = document.getElementById(searchtext);
    var searchValue = searchtxt.value.replace(/[^A-Za-z0-9_ "'\.,+-]/gi,"");

    if (searchValue != '')
    {
        if (Number(dropdown.value) == 11873) {
            location.href = "/pub_Search.aspx?SearchText="+escape(searchValue);
        }
        else if (Number(dropdown.value) == 1218) {
            location.href = "http://www.moodyradio.org/brd_SearchResults.aspx?FolderID="+dropdown.value+"&SearchText="+escape(searchValue);
        }
        else if (Number(dropdown.value) == 18) {
            location.href = "http://www.moody.edu/edu_SearchResults.aspx?FolderID="+dropdown.value+"&SearchText="+escape(searchValue);
        }
	    else if (Number(dropdown.value) == 1222) {
	        location.href = "http://www.moodyconferences.com/con_SearchResults.aspx?FolderID="+dropdown.value+"&SearchText="+escape(searchValue);
	    }
        else {
            location.href = "http://www.moodyministries.net/crp_SearchResults.aspx?FolderID="+dropdown.value+"&SearchText="+escape(searchValue);
        }
    }
    else 
    {
        alert('Please enter a search criteria.');
    }
}

function toggleDiv(divID){
    var divBlock = document.getElementById(divID);
    
    if (divBlock.style.display == "block" || divBlock.style.display == ""){
        divBlock.style.display = "none";
    }else{
        divBlock.style.display = "block";
    }
}

function toggleInlineDiv(divID, sender){
    $(sender).click(function(event){
        event.preventDefault();
    });

    var divBlock = document.getElementById(divID);
    if (divBlock.style.display == "inline" || divBlock.style.display == ""){
        divBlock.style.display = "none";
    }else{
        divBlock.style.display = "inline";
    }
}

function getQuery(param) {
    var p = escape(unescape(param));
    var regex = new RegExp("[?&]" + p + "(?:=([^&]*))?", "i");
    var match = regex.exec(window.location.search);
    var value = null;
    if (match != null) {
        value = match[1];
    }
    return value;
}


/*---------------
    Checkout js
----------------*/
function checkout_expYearChanged(ddl, monthsDdl_id){
    var mddl = document.getElementById(monthsDdl_id);
    if (mddl){

        var selval = mddl.options[mddl.selectedIndex].value;
                
        if (ddl.selectedIndex == 1 && mddl.options.length == 13){
        
            // Display only current and future months.

            mddl.options.length = 0; 
            mddl.options[0] = new Option('-Select-', '0', true, (selval == '0'));
            
            if (checkout_currMonth){
                for (var i = checkout_currMonth; i < 13; i++){
                    var opt = ((i < 10) ? '0' : '') + i;
                    mddl.options[mddl.length] = new Option(opt, opt, false, (selval == opt));
                }
            }
        }
        else if (mddl.options.length < 13){
        
            // Display all months.
            
            mddl.options.length = 0; 
            mddl.options[0] = new Option('-Select-', '0', true, (selval == '0'));
            
            for (var i = 1; i < 13; i++){
                var opt = ((i < 10) ? '0' : '') + i;
                mddl.options[mddl.length] = new Option(opt, opt, false, (selval == opt));
            }
        }
    }
}
function ddlRetailers_Click(ddl){
    var href = ddl.options[ddl.selectedIndex].value;
    if(href && href != '') {
        window.open(href);
    }
}
function ddlRetailers_Change(ddl){
    ddl.onclick = new function(){ ddlRetailers_Click(ddl); };
}
function ddlRetailers_Focus(ddl){
    ddl.onchange = new function(){ ddlRetailers_Change(ddl); };
}
function ddlRetailers_Blur(ddl){
    ddl.onclick = new function(){};
    ddl.onchange = new function(){};
}
function ddlRetailers_KeyPress(ddl, event){
    if(isEnterKey(event)){
        var href = ddl.options[ddl.selectedIndex].value;
        if(href && href != '') {
            window.open(href);
        }
    }
}
function isEnterKey(event){
	if(!event){
        event = window.event;
    }
    if ((event.which || event.keyCode) && ((event.which == 13) || (event.keyCode == 13))){
        return true;
    }
    return false;
}


var getKey = function(e) {
  if(!e) e = window.event;
  var key = e.which;
  if(!key) key = e.keyCode;
  return key;
 };
 
function setLimit(objQuery, limit){
	var textarea = new textLimit();
	textarea.input = $(objQuery)[0];
	//textarea.remaining = document.getElementById('charCount');
	textarea.limit = limit;
	textarea.init();
}

// textLimit
$.fn.textLimit = function(options) {
	var opts = $.extend({}, $.fn.textLimit.defaults, options);
	return this.each(function() {
		
		var $this = $(this);
		if(!opts.allowOver) {
			$this.keydown(function(e) {
			    if(this.value.length >= opts.limit) {
					if(document.selection && document.selection.createRange().text.length > 0) {
						return;
					}
					else if(this.selectionEnd - this.selectionStart > 0) {
						return;
					}
					var key = e.which;
					if(key > 46 || key == 13 || key == 32) {
						e.preventDefault();
					}
				}
			});
		}
		$this.bind('keyup onchange', function() {
			var val = clean(this.value);
			if(!opts.allowOver && val.length > opts.limit) {
				val = val.substr(0, opts.limit);
			}
			if(this.value != val) {
				this.value = val;
				this.scrollTop = this.scrollHeight;
			}
			setCount(val.length);
			setRemaining(val.length);
		});
		setTimeout(function() {
				setCount($this.val().length);
				setRemaining($this.val().length);
			}, 10);
		
	});
	function setCount(length) {
		if(opts.count) {
			opts.count.innerHTML = length;
			adjustStyle(opts.count, length);
		}
	}
	function setRemaining(length) {
		if(opts.remaining) {
			opts.remaining.innerHTML = opts.limit - length;
			if(opts.errorClass) {
			    adjustStyle(opts.errorClass, length);
		    }
		    else {
			    adjustStyle(opts.remaining, length);
			}
		}
	}
	function adjustStyle(object, length) {
		if(length > opts.limit) {
			$(object).addClass(opts.overClass);
		}
		else {
			$(object).removeClass(opts.overClass);
		}
	}
	function clean(value) {
		return value.replace(opts.regex, '');
	}
};
$.fn.textLimit.defaults = {
	limit: 500,
	regex: /<[^ ]\/?[^>]+>/gi,
	allowOver: false,
	count: null,
	remaining: null,
	overClass: 'error',
	errorClass: null
};
