function contactus(formname, messageid) {
    if (validateform(formname, 'yellow', '#EDEDED')) {
        var keepgoing = true;
        var messageid = '#' + messageid

        //EMAIL
        var email = document.forms[formname].email.value;
        if (email.length > 0) {
            if (!validEmail(email)) {
                
                $(messageid).html('Please fill in a valid email.');
                $(messageid).fadeIn('slow');
                $('#email').css({ 'background-color': 'yellow' });
                $('#email').effect("shake", { times: 3, distance: 5 }, 100);
                keepgoing = false;
            }
        };

        if (keepgoing) {
            $(messageid).css({ 'display': 'block' })
            $(messageid).html('<img src="/images/indicator.gif" />');
            jQuery.post('/sc_contactus.ashx', $('#' + formname).serialize(), function(data) {
                $('#contactformwrapper').html('Thanks!  We\'ll be in touch.  TTYL.')  
            })
        }
    }
}


function validPhone(strPhone) {
    var regPhone = /^[- \(\)0-9\+]+$/;
    if (strPhone.match(regPhone)) {
        return true;
    }
    else {
        return false;
    }
}

function messageAppear(messageid) {
    if ($(messageid).style.display == "none") {
        Effect.Appear(messageid, 'blind');
    } else {
        Effect.Shake(messageid);
    }
}


//VALIDATION
function validEmail(email) {
    var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
    return re.test(email);
}

//VALIDATION
function trim(stringToTrim) {
    return stringToTrim.replace(/^\s+|\s+$/g, "");
}

//VALIDATION
function ltrim(stringToTrim) {
    return stringToTrim.replace(/^\s+/, "");
}

//VALIDATION
function rtrim(stringToTrim) {
    return stringToTrim.replace(/\s+$/, "");
}

//VALIDATION
function isFilled(elm) {
    //alert(elm.type);
    //Last Updated by Sol - 6/14/07
    switch (elm.type) {
        case "text":
            if (trim(elm.value) == "" || elm.value == null) {
                return false;
            }
            else { return true; }
            break;
        case "password":
            if (trim(elm.value) == "" || elm.value == null) {
                return false;
            }
            else { return true; }
            break;
        case "textarea":
            if (trim(elm.value) == "" || elm.value == null) {
                return false;
            }
            else { return true; }
            break;
        case "select-one":
            var myindex = elm.selectedIndex;
            if (myindex == 0) {
                return false;
            }
            else { return true; }
            break;
    }
}

//VALIDATION
function validateform(formname, color1, color2) {
    //last updated on 9/27/07
    //index of is mo betta
    var x = document.forms[formname];
    var allgood = true;
    for (var i = 0; i < x.length; i++) {
        if (x.elements[i].className.indexOf('required') > -1) {
            var thisformname = x.elements[i].name;
            var thisformid = x.elements[i].id;
            if (!isFilled(x.elements[i])) {
                document.getElementById(thisformid).style.background = color1;
                allgood = false;
            } else {
                document.getElementById(thisformid).style.background = color2;
            }
        }
    }
    if (allgood) {
        return true;
    } else {
        return false;
    }
}

function loaddiv(divid,ajaxpage,tab,handle){
	//TABS
	var x=document.getElementsByTagName("img");
	for (var i=0;i<x.length;i++){
		if (x[i].id.indexOf(handle)>-1){
			var element = document.getElementById(x[i].id);
			if (element.id == tab){
				element.src = element.src.replace('/off/','/on/')
			} else {
				element.onmouseover = tabover;
				element.onclick = tabclick; 
				element.onmouseout = tabout; 
				element.src = element.src.replace('/on/','/off/')
			}
		}
	}
	
	//AJAX REQUEST
	new Ajax.Request(ajaxpage, {
	method: "get",
	onComplete: function(transport) { 
		document.getElementById(divid).innerHTML = transport.responseText;
		}//-onSuccess
		}//-request arguments
		);// new ajax request	
}

//IMAGE ROLLOVER
function rolloverInit(){
	var x=document.getElementsByTagName("img");
    for (var i=0;i<x.length;i++){
	    if (x[i].className.indexOf('rollover')>-1){
	        x[i].onmouseover = function() {
	            this.src = this.src.replace('/off/','/roll/')
	        }
	        x[i].onmouseout = function() {
	            this.src = this.src.replace('/roll/','/off/')
	        }
	    }
	}
}

function spidermenus(triggerhandle,menuhandle){

	var x=document.getElementsByTagName("div");
	for (var i=0;i<x.length;i++){
		if (x[i].id.indexOf(triggerhandle)>-1){
			
			//VARIABLES
			var element = document.getElementById(x[i].id);
			var theid = element.id.replace(triggerhandle,'');
			var thetrigger = document.getElementById(triggerhandle + theid);
            
			//OVER
			thetrigger.onmouseover = function() {
			document.getElementById(this.id.replace('trigger','')).style.display = "block";
			};
			    
			//OUT
			thetrigger.onmouseout = function() {
				document.getElementById(this.id.replace('trigger','')).style.display = "none";
			};
		} 
	}
}

function galleryrollover(){
	var x=document.getElementsByTagName("img");
    for (var i=0;i<x.length;i++){
	    if (x[i].className.indexOf('gallerythumb')>-1){
	        x[i].onmouseover = function() {
	            this.style.borderColor = 'white';
	        }
	        x[i].onmouseout = function() {
	            this.style.borderColor = '#48596a';
	        }
	    }
	}

}

function pause(){
    if(document.getElementById('pauseButton')){
        document.getElementById('pauseButton').onclick = function() { 
            if (document.getElementById('pauseButton').src.indexOf('pause') > -1){
                $('#s1').cycle('pause');
                document.getElementById('pauseButton').src = '/images/nav/roll/play.gif';
            } else if (document.getElementById('pauseButton').src.indexOf('play') > -1){
                $('#s1').cycle('resume');
                document.getElementById('pauseButton').src = '/images/nav/roll/pause.gif';
            }
        }
    };
}

function navrollover() {
    $(".drop").mouseenter(function() {
        var theid = this.id.replace('-ddcontent', '');
        var thesrc = document.getElementById('nav' + theid).src;
        document.getElementById('nav' + theid).src = thesrc.replace('/off/', '/roll/');
    })
    $(".drop").mouseleave(function() {
        var theid = this.id.replace('-ddcontent', '');
        var thesrc = document.getElementById('nav' + theid).src;
        document.getElementById('nav' + theid).src = thesrc.replace('/roll/', '/off/');
    })
    $(".ienav").mouseenter(function() {
        if (document.getElementById('s1')) {
            if (navigator.userAgent.indexOf('IE') > -1) {
                setTimeout('ienavon()', 100);
            }
        }
    })
    $(".ienav").mouseleave(function() {
        if (document.getElementById('s1')) {
            if (navigator.userAgent.indexOf('IE') > -1) {
                setTimeout('ienavoff()', 100);
            }
        }
    })
}

function ienavon() {
    $('#s1').cycle('pause');
    document.getElementById('s1').style.position = 'static';
    if (document.getElementById('cyclewrapper')) {
        document.getElementById('cyclewrapper').style.position = 'static';
        $('.cycleimg').css({ 'position': 'static' });
    }
}

function ienavoff() {
    $('#s1').cycle('resume');
    document.getElementById('s1').style.position = 'relative';
    if (document.getElementById('cyclewrapper')) {
        document.getElementById('cyclewrapper').style.position = 'relative';
        $('.cycleimg').css({ 'position': 'absolute' });
    }
}

/* drop animation */
if (navigator.userAgent.indexOf('IE 6') > -1) {
    var DDSPEED = 2;
} else {
    var DDSPEED = 10;
}

var DDTIMER = 15;

// main function to handle the mouse events //
function ddMenu(id,d){
    
    var h = document.getElementById(id + '-ddheader');
    var c = document.getElementById(id + '-ddcontent');
    clearInterval(c.timer);
    if(d == 1){
        clearTimeout(h.timer);
        if(c.maxh && c.maxh <= c.offsetHeight){return}
        else if(!c.maxh){
            c.style.display = 'block';
            c.style.height = 'auto';
            c.maxh = c.offsetHeight;
            c.style.height = '0px';
        }
        c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER);
    }else{
        h.timer = setTimeout(function(){ddCollapse(c)},50);
    }
}

// collapse the menu //
function ddCollapse(c){
    c.timer = setInterval(function(){ddSlide(c,-1)},DDTIMER);
}

// cancel the collapse if a user rolls over the dropdown //
function cancelHide(id){
    var h = document.getElementById(id + '-ddheader');
    var c = document.getElementById(id + '-ddcontent');
    clearTimeout(h.timer);
    clearInterval(c.timer);
    if(c.offsetHeight < c.maxh){
        c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER);
    }
}

function ddSlide(c,d){
    var currh = c.offsetHeight;
    var dist;
    if(d == 1){
    dist = (Math.round((c.maxh - currh) / DDSPEED));
    }else{
    dist = (Math.round(currh / DDSPEED));
    }
    if(dist <= 1 && d == 1){
    dist = 1;
    }
    c.style.height = currh + (dist * d) + 'px';
    c.style.opacity = currh / c.maxh;
    c.style.filter = 'alpha(opacity=' + (currh * 100 / c.maxh) + ')';
    if((currh < 2 && d != 1) || (currh > (c.maxh - 2) && d == 1)){
    clearInterval(c.timer);
    }
}

/* end drop animation */

function jeffospic(){
    $('#jeffospic').mouseenter(function(){
        document.getElementById('viewlargebutt').style.display = 'block';
    })
    $('#jeffospic').mouseleave(function(){
        document.getElementById('viewlargebutt').style.display = 'none';
    })
}

function screenshot(){
    $('#clientnav li,#leftarrow,#rightarrow').click(function() {
        var theid = $('.activeSlide').attr('id');
        document.getElementById('screenshot').innerHTML = theid;
    })
}

function iconnav() {
    $('.iconmenu').mouseenter(function() {
        document.getElementById('slideshow1').style.position = 'static';
        var x = document.getElementsByTagName("img");
        for (var i = 0; i < x.length; i++) {
            if (x[i].className.indexOf('bigslide') > -1) {
                x[i].style.position = 'static';
                x[i].style.zIndex = '-99';
            }
        }
    })
    $('.iconmenu').mouseleave(function() {
        document.getElementById('slideshow1').style.position = 'relative';
        var x = document.getElementsByTagName("img");
        for (var i = 0; i < x.length; i++) {
            if (x[i].className.indexOf('bigslide') > -1) {
                x[i].style.position = 'absolute';
                x[i].style.zIndex = '8';
            }
        }
    })
}

function mapinfo() {
    if (navigator.userAgent.indexOf('IE') > -1) {
    } else {
        if (document.getElementById('maptrigger')){
            document.getElementById('maptrigger').onmouseover = function() {
                document.getElementById('mapinfo').style.display = "block";
            };

            document.getElementById('maptrigger').onmouseout = function() {
                document.getElementById('mapinfo').style.display = "none";
            };
        }
    }
}

function viewlarge() {
    if (document.getElementById('viewlargebutt')){
        document.getElementById('viewlargebutt').onclick = function() {
            if (navigator.userAgent.indexOf('IE') > -1) {
                $('.smallicon,.iconmenutrigger,.topnavitemwrapper').css({ 'position': 'static' });
            }
        }
        document.getElementById('headerpic1').onclick = function() {
            if (navigator.userAgent.indexOf('IE') > -1) {
                $('.smallicon,.iconmenutrigger,.topnavitemwrapper').css({ 'position': 'relative' });
            }
        }
    }
}

function pagerrollover() {
    $('#nav a').mouseover(function() {
        $(this).css({ 'color' : 'red' });
    })
}

window.onload = masterloader;

function masterloader(){
    //pagerrollover();
    viewlarge();
    iconnav();
    screenshot();
    jeffospic();
    navrollover();
    pause();
	rolloverInit();
    spidermenus('menutrigger','menu');
    galleryrollover();
    mapinfo();
}