window.onload = function() {
	if(document.getElementById('slidingNav')){
		$("#slidingNav").animate({left: "60px"}, 2000, "swing");
	}
	if(!document.getElementById('sIFR_replacement_0') && document.getElementById('primaryNav')){
		$('#primaryNav>li').css('padding-bottom','8px');
		$('#primaryNav>li>a>span').css('backgroundPosition','0 13px');
	}
	if(document.getElementById('displayGallery')){
	    var width = $('.primaryImg img').width();
	    var height = $('.primaryImg img').height();
	    setDisplayWidth(width, height);
	}
	if(document.getElementById('eventDetailSlider')){
	    var eventDetailSlider = new scrollBox();
	    eventDetailSlider.elems.frame = document.getElementById('eventContainer');
	    eventDetailSlider.elems.slider = document.getElementById('eventDetailSlider');
	    eventDetailSlider.elems.up = $('.up')[0];
	    eventDetailSlider.elems.down = $('.down')[0];
	    eventDetailSlider.init();
	}
	if(document.getElementById('newsWindow1')){
	    var window1 = new scrollBox();
	    window1.elems.frame = document.getElementById('newsWindow1');
	    window1.elems.slider = document.getElementById('newsScroll1');
	    window1.elems.up = document.getElementById('up1');
	    window1.elems.down = document.getElementById('down1');
	    window1.init();
	}
	if(document.getElementById('calendar')){
	    if($.browser.msie && parseInt($.browser.version,10) <= 8) {
            $('.calHeading').css('margin-left','1px');
            $('.calHeading').css('width','183px');
         }
    } 
}

var contentSlider;
$(document).ready(function(){ 
	if(document.getElementById('search')){onBlurFocusSearch(); activateEnter();}
	if(document.getElementById('contentSlider')){
	    contentSlider = new scrollBox();
	    contentSlider.elems.frame = $('.rightCol')[0];
	    contentSlider.elems.slider = document.getElementById('contentSlider');
	    contentSlider.elems.up = $('.up')[0];
	    contentSlider.elems.down = $('.down')[0];
	    contentSlider.init();
	}
	if(document.getElementById('searchSlider')){setSearchSlider();}
	if(document.getElementById('secondarySliderWindow')){setLibrarySlider();}
    if(document.getElementById('subcatNav')){setOpacChange();}
	if(document.getElementById('newsWindow2')){
	    var window2 = new scrollBox();
	    window2.elems.frame = document.getElementById('newsWindow2');
	    window2.elems.slider = document.getElementById('newsScroll2');
	    window2.elems.up = document.getElementById('up2');
	    window2.elems.down = document.getElementById('down2');
	    window2.init();
	}
	if(document.getElementById('galleryWindow')){setGallerySlider();}
	if(document.getElementById('contentSubNav')){setContentNav();}
	if(document.getElementById('eventSlider')){
		init_eventSlide();
		$('.calendarBg .up').click(function() {
			clickEventUp();
		});
		$('.calendarBg .down').click(function() {
			clickEventDown();
		});
	}
	if(document.getElementById('primaryNav')){setPriNav();}
	if(document.getElementById('subNav')){setSubNav();}
	if(document.getElementById('detailNav')){detailInit();}
	if(document.getElementById('subNav')){centerMenu(document.getElementById('subNav'));}
//	centerMenu(document.getElementById('footerNav'));
//	centerMenu(document.getElementById('footerSubNav'));
});

function setSearchSlider(){
    var searchSlider = new scrollBox();
	searchSlider.elems.frame = document.getElementById('searchWindow');
    searchSlider.elems.slider = document.getElementById('searchSlider');
    searchSlider.elems.up = document.getElementById('up');
    searchSlider.elems.down = document.getElementById('down');
    searchSlider.init();
}

function setLibrarySlider() {
    librarySlider = new scrollBox();
	librarySlider.elems.frame = document.getElementById('secondarySliderWindow');
    librarySlider.elems.slider = document.getElementById('secondarySlider');
    librarySlider.elems.up = document.getElementById('up');
    librarySlider.elems.down = document.getElementById('down');
    librarySlider.init();
}

function setOpacChange() {
	$('#subcatNav a').hover(
	function() {
		$(this).parent().parent().parent().parent().parent().children('img').css('opacity','.8');
		$(this).parent().parent().parent().parent().parent().children('img').css('filter','alpha(opacity=80)');
	},
	function() {
		$(this).parent().parent().parent().parent().parent().children('img').css('opacity','1');
		$(this).parent().parent().parent().parent().parent().children('img').css('filter','alpha(opacity=100)');
	});
}

function setDisplayWidth(width, height) {
	var disImgWid = parseInt(width);
	var disImgHgt = parseInt(height);
	
	if(disImgWid > 575) {
		$('.primaryImg').css('width','575px');
		$('#displayGallery').css('width','882px');
	}
	else {
	    $('.primaryImg').css('width',disImgWid + 'px');
		var displayWidth = disImgWid + 307;
		var displayWidth = displayWidth + 'px';
		$('#displayGallery').css('width',displayWidth);
	}
	
	if(disImgHgt > 359){
		$('.primaryImg').css('height','359px');
	}
	else {
	    disImgHgt = disImgHgt + 'px';
	    $('.primaryImg').css('height',disImgHgt);
	}
}

function setGallerySlider() {
	var galWin = document.getElementById('galleryWindow');
	var numOfImg = galWin.getElementsByTagName('li');
	if(numOfImg.length > 22){
		setSlider();
	}
	else if(numOfImg.length > 0 && numOfImg != null) {
		document.getElementById('slideLeft').className = 'disabled';
		document.getElementById('slideRight').className = 'disabled';
		galWin.getElementsByTagName('ul')[0].style.width = (numOfImg.length * 38) + 'px';
	}
}

function setSlider() {
	var slider = new filmstrip();
	slider.frame = document.getElementById('galleryWindow');
	slider.next = document.getElementById('slideRight');
	slider.previous = document.getElementById('slideLeft');
	slider.settings.totalVisible = 22;
	slider.settings.setRotate = 0;
	slider.anim.speed = 5;
	slider.settings.disableWrap = true;
	slider.settings.trimEnding = true;
	slider.init();
}

function setPriNav(){
	$('#primaryNav>li').hover(
		function() {
			$(this).addClass('hover');
		},
		function() {
			$(this).removeClass('hover');
		}
	);
}

function setSubNav(){
	$('#subNav>li').hover(
		function() {
			$(this).addClass('hover');
		},
		function() {
			$(this).removeClass('hover');
		}
	);
}

function setContentNav(){
	$('#contentSubNav>li').hover(
		function() {
			$(this).addClass('hover');
		},
		function() {
			$(this).removeClass('hover');
		}
	);
}

function centerMenu(object) {
    var uls = object;
    if(uls) {
        var width = 0;
        var lis = uls.getElementsByTagName('li');
        for(var x=0;x<lis.length;x++) {
            width += lis[x].offsetWidth;
        }
    uls.style.width = width + "px";
    }
}

function onBlurFocusSearch() {
    var searchInput = document.getElementById('search').getElementsByTagName('input')[0];
    searchInput.onfocus = function() {
        inputFocus(this, 'text-align:left', 'SEARCH SITE');
    }
    searchInput.onblur = function() {
     inputBlur(this, 'text-align:left', 'SEARCH SITE');
    }
} 

function activateEnter(){
    var searchInput = $('.searchInput')[0];
    var inputButton = document.getElementById('ctl00_btnSearch');
	searchInput.onkeypress = function(event) {
        var key = c2.getKey(event);
        if(key == 13){
            if(inputButton.tagName == 'A') {
               eval(unescape(inputButton.href.substr(11)));
            }
		}
    }   
}

// Input Focus and Blur:
// Place the inputFocus function on the onfocus event of an input element and the inputBlur on the onblur event.
// Use 'this' for the object parameter. 'css' and 'defaultValue' parameters are optional.
// Requires: jQuery

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($.trim(object.value) == "") {
        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.split(';');
    for(var x=0;x<attributes.length;x++) {
        var elem = attributes[x].split(':');
        $(object).css(elem[0],elem[1]);
    }
}

function detailInit() {
	var sliderDivs = $('#contentSlider div');
	if(sliderDivs.length > 1) {
		var subEvent = { current:'cat1' };
		$('#detailNav li a').click(function() {
		    if(document.getElementById('cat0')){
    		    document.getElementById('cat0').className = "hide";
	        }
	        var hrefLocation = $(this).attr('href');
	        if(hrefLocation == "#"){
	       		document.getElementById(subEvent.current).className = "hide";
	    		document.getElementById(this.rel).className = "show";
	    		subEvent.current = this.rel;
	    		contentSlider.init();
	    		sIFR.replace(perpetuaSC, {
                    selector: '.goldTheme .profileContentArea h1',
                    css: '.sIFR-root {font-size: 21px; color: #D6492A;}',
                    forceSingleLine: false
                });
	    		return false;
		    }
		});
	}
}

/* Client-side access to querystring name=value pairs
	Version 1.3
	28 May 2008
	
	License (Simplified BSD):
	http://adamv.com/dev/javascript/qslicense.txt
*/
function Querystring(qs) { // optionally pass a querystring to parse
	this.params = {};
	
	if (qs == null) qs = location.search.substring(1, location.search.length);
	if (qs.length == 0) return;

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&'); // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i = 0; i < args.length; i++) {
		var pair = args[i].split('=');
		var name = decodeURIComponent(pair[0]);
		
		var value = (pair.length==2)
			? decodeURIComponent(pair[1])
			: name;
		
		this.params[name] = value;
	}
}

Querystring.prototype.get = function(key, default_) {
	var value = this.params[key];
	return (value != null) ? value : default_;
}

Querystring.prototype.contains = function(key) {
	var value = this.params[key];
	return (value != null);
}

/* End of Querystring block */

// Calendar AJAX

function calendarLoadMonth(month, year, showHeader, showWeekdays, showSelectTax, taxID, headerLabel, loadJs) {
    var qs = new Querystring();
    var calendarRequest = { };
    calendarRequest.month = month;
    calendarRequest.year = year;
    calendarRequest.showHeader = showHeader;
    calendarRequest.showWeekdays = showWeekdays;
    calendarRequest.showSelectTax = showSelectTax;
    calendarRequest.taxonomyID = taxID;
    calendarRequest.headerLabel = headerLabel;
    calendarRequest.loadJavascript = loadJs;
    calendarRequest.language = qs.get("LangType", "1033");
    
    var DTO = { 'cr' : calendarRequest };
    
    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "/webservices/events.asmx/LoadCalendarMonth",
        data: JSON.stringify(DTO),
        dataType: "json",
        success: function(result, textStatus) {
            $("#calendar").html(result);
            //recallBubbleSet();
        },
        error: function(request, status, err) {
            if (request.readyState == 4) {
                switch (request.status) {
                // Page-not-found error
                case 404:
                    alert('Error: Not Found. The requested URL could not be found.');
                    break;
                // Internal server error
                case 500:
                    if (request.responseText.Message) {
                        alert(request.responseText.Message);
                    }
                    else {
                        alert(request.responseText);
                    }
                    break;
                default:
                    break;
                }
 
            }
        }
    });
}
//
// long taxID - taxonomyId on which the event(s) fall under.
// bool loadEvents - flag whether or not to refresh the events display
//
function calendarLoad(day, month, year, taxID, loadEvents) {
    slideEventClear();
    var qs = new Querystring();
    var calendarRequest = { };
    calendarRequest.month = month;
    calendarRequest.year = year;
    calendarRequest.taxonomyID = taxID;
    calendarRequest.enableSlide = loadEvents;
    calendarRequest.language = qs.get("LangType", "1033");
    
    var DTO = { 'cr' : calendarRequest };
    
    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "/webservices/events.asmx/LoadCalendar",
        data: JSON.stringify(DTO),
        dataType: "json",
        success: function(result, textStatus) {
            $("#calendar").html(result.calHtml);
            if(loadEvents){
                // Set the new header display.
                $("#subTitle").html(result.calHeader);
                
                //// Display the new events.
                //$("#eventSlider").html(result.calEvents);
                
                // Display/Hide the "no events" message accordingly.
                var cbNoEvents = document.getElementById('ctl00_cphContentArea_cbNoEvents');
                if(result.calEvents == ''){
                    $("#eventSlider").html(result.calEvents);
                    if (cbNoEvents)
                        cbNoEvents.style.display = 'block';
                }
                else{
                    if (cbNoEvents)
                        cbNoEvents.style.display = 'none';
                    $("#eventSlider").html(result.calEvents);
                }
            }
            //Re-apply sIFR to month/year headline
            $('#subTitle').removeClass('sIFR-replaced');
            sIFR.replace(perpetuaSC, {
                selector: '.calendarBg h2',
                css: '.sIFR-root {font-size: 18px; color: #bf311a;}'
            });
            if($.browser.msie && parseInt($.browser.version,10) <= 8) {
                $('.calHeading').css('margin-left','1px');
                $('.calHeading').css('width','183px');
             }
             var reset = true;
             init_eventSlide(reset);
           // document.getElementById('eventContainer').scrollTop = '0px';
            //recallBubbleSet();
        },
        error: function(request, status, err) {
            if (request.readyState == 4) {
                switch (request.status) {
                // Page-not-found error
                case 404:
                    alert('Error: Not Found. The requested URL could not be found.');
                    break;
                // Internal server error
                case 500:
                    if (request.responseText.Message) {
                        alert(request.responseText.Message);
                    }
                    else {
                        alert(request.responseText);
                    }
                    break;
                default:
                    break;
                }
            }
        }
    });
}



function galleryLoadImage(id, a) {
    if (a.className == 'selected')
        return;
        
    var DTO = { 'contentId' : id };
    
    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "/webservices/gallery.asmx/RequestImage",
        data: JSON.stringify(DTO),
        dataType: "json",
        success: function(result, textStatus) {
            if(typeof(waitForAjax) != 'undefined'){
		       clearTimeout(waitForAjax);
	        }
            // Clear current selection.
            galleryClearSelection();
            galleryClearImage();
            
            // Set the new selection.
            a.className = 'selected';
            
            // wait for ajax to return/load image
            //var waitForAjax = setTimeout('setDisplayWidth()',800);
            setDisplayWidth(result.Image.Width, result.Image.Height);
            
            // result is a GalleryImage object.
            gallerySetImage(result);
        },
        error: function(request, status, err) {
            if (request.readyState == 4) {
                switch (request.status) {
                // Page-not-found error
                case 404:
                    alert('Error: Not Found. The requested URL could not be found.');
                    break;
                // Internal server error
                case 500:
                    if (request.responseText.Message) {
                        alert(request.responseText.Message);
                    }
                    else {
                        alert(request.responseText);
                    }
                    break;
                default:
                    break;
                }
            }
        }
    });
}
function gallerySetImage(jsonImg){
    var img = document.getElementById('ctl00_cphContentArea_imgPrimary');
    img.src = jsonImg.Image.Src;
    img.alt = jsonImg.Image.Alt;
    $('#description').html(jsonImg.Description);
    $('#subTitle').html(jsonImg.Title);
    // Re-apply sIFR to subtitle.
    $('#subTitle').removeClass('sIFR-replaced');
    sIFR.replace(perpetuaSC, {
        selector: '.galleryDetail h2',
        css: '.sIFR-root {font-size: 18px; color: #BFA042;}'
        });
}
function galleryClearImage(){
    var img = document.getElementById('ctl00_cphContentArea_imgPrimary');
    img.alt = '';
    img.src = '';
}
function galleryClearSelection(){
    var galW = document.getElementById('galleryWindow');
    if (galW){
        var anchors = galW.getElementsByTagName('a');
        for (var i = 0; i < anchors.length; i++){
            if (anchors[i].className == 'selected'){
                anchors[i].className = '';
                return true;
            }
        }
    }
    return false;
}
