// mouseover preloads
var mouseovers = new Array();
if (document.images) {
	var mouseoversList = new Array('why_via', 'meet_the_staff', 'portfolio', 'blog', 'photo_gallery');
	for (var i=0; i<mouseoversList.length; i++) {
		mouseovers[mouseoversList[i]+'Off'] = new Image();
		mouseovers[mouseoversList[i]+'Off'].src = "/images/nav/"+mouseoversList[i]+'_off.gif';
		mouseovers[mouseoversList[i]+'Over'] = new Image();
		mouseovers[mouseoversList[i]+'Over'].src = "/images/nav/"+mouseoversList[i]+'_on.gif';
	}
}

// mouseover image functions
function imgOn(imgName) {
    // don't turn on current page's nav link
    if (document.images && (imgName != curPage)) { document[imgName].src = mouseovers[imgName+'Over'].src; }
}

function imgOff(imgName) {
    // don't turn off current page's nav link
    if (document.images && (imgName != curPage)) { document[imgName].src = mouseovers[imgName+'Off'].src; }
}

function popup(src,w,h) {
	window.open(src,"","width="+w+",height="+h+",toolbars=no,status=no,menubar=no,size=yes");
}

var agent = navigator.userAgent.toLowerCase();
var is_mac = (agent.indexOf("mac")!=-1);
var is_safari =  (agent.indexOf("safari") != -1);

function show_email() {
	if (is_safari) {
		popup("/email_form_safari.html",270,275);
	} else {
		document.getElementById('email').style.display = 'block';
	}
}

var ajaxWorking = false;

function emailFormSuccess(response) {
	ajaxWorking = false;
    if (response.responseText == '0') {
        $('emailFields').style.display = 'none';
        $('emailThanks').style.display = 'block';
	} else {
		emailFormError(response);
	}
}

function emailFormError(response) {
	ajaxWorking = false;
    alert("There was an error processing your submission.  Please try again later or contact us for assistance.");
}

function validateEmailForm(formObj) {
    if (ajaxWorking) { return false; }

    var emailPat = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,5}|[0-9]{1,3})(\]?)$/;

    var errorText = "";

    if (formObj.name.value.length < 1) {
        errorText += "Please enter your name.\n";
    }
    if (formObj.company.value.length < 1) {
        errorText += "Please enter your company.\n";
    }
    if (formObj.email.value.length < 1) {
        errorText += "Please enter your email address.\n";
    } else if (!emailPat.test(formObj.email.value)) {
        errorText += "Please check your email address entry to make sure it's correct.\n";
    }
    if (formObj.address.value.length < 1) {
        errorText += "Please enter your street address.\n";
    }
    if (formObj.phone.value.length < 1) {
        errorText += "Please enter your phone number.\n";
    }

    if (errorText.length > 0) {
        alert(errorText);
        return false;
    } else {
		processEmailForm(formObj);
	}
}

function processEmailForm(formObj) {
    if (!document.getElementById) {
        alert("Your browser does not support the features needed to sign up using this form. Please contact us for assistance. We apologize for the inconvenience.");
        return;
    }
    if (!ajaxWorking) {
        ajaxWorking = true;

        var postString = 'name='+encodeURIComponent(formObj.name.value)
            +'&company='+encodeURIComponent(formObj.company.value)
            +'&email='+encodeURIComponent(formObj.email.value)
            +'&address='+encodeURIComponent(formObj.address.value)
            +'&phone='+encodeURIComponent(formObj.phone.value);
    
        new Ajax.Request("/email_signup.php4", {
                asynchronous: true,
                method: 'post',
                postBody: postString,
                onSuccess: emailFormSuccess,
                onFailure: emailFormError
            });
    }
}

// browser detection
var uaVer = parseInt(navigator.appVersion);
var NS6 = (navigator.appName == "Netscape" && uaVer >= 5);
var NS4 = (navigator.appName == "Netscape" && uaVer >= 4 && uaVer < 5);
var IE4 = (navigator.appName == "Microsoft Internet Explorer" && uaVer >= 4);
// var NS3 = (navigator.appName == "Netscape" && uaVer < 4);
// var IE3 = (navigator.appName == "Microsoft Internet Explorer" && uaVer < 4);

// menu init
var inMenu = 0;
var curLayer = "";
var curImage = "";
var menuTimeout = null;

// mouseover image functions for menu item images
function menuItemOn(imgName,layerName) {
    clearTimeout(menuTimeout);
    inMenu = 1;
	imgOn(imgName);
}

function menuItemOff(imgName,layerName) {
    inMenu = 0;
    // time after mouse moves away from menu item before menu is hidden (ms)
    // set higher for text menu items, lower for images
    menuTimeout = setTimeout("hideMenu(curLayer,curImage)", 50);
	imgOff(imgName);
}

// show menu
function showMenu(layerName,imgName) {
    if (NS4 || IE4 || NS6) {
        if (menuTimeout != null) {
            clearTimeout(menuTimeout);
            hideMenu(curLayer,curImage);
        }
        if (navigator.appName == "Netscape" && !document.getElementById) {
            eval('document.layers.'+layerName+'.visibility = "show"');
        } else if (document.getElementById) {
            eval('document.getElementById("'+layerName+'").style.visibility = "visible"');
        } else {
            eval('document.all["'+layerName+'"].style.visibility = "visible"');
        }
        curLayer = layerName;
        curImage = imgName;
	if (layerName != (curPage + 'Div')) {
	    imgOn(imgName);
	}
    }
}

// hide menu
function hideMenu(layerName,imgName) {
    if (inMenu == 0) {
        if (NS4 || IE4 || NS6) {
            if (navigator.appName == "Netscape" && !document.getElementById){
                eval('document.layers.'+layerName+'.visibility = "hide"');
            } else if (document.getElementById) {
                eval('document.getElementById("'+layerName+'").style.visibility = "hidden"');
            } else {
                eval('document.all["'+layerName+'"].style.visibility = "hidden"');
            }
        }
	if (layerName != (curPage + 'Div')) {
	    imgOff(imgName);
	}
    }
}

// mouse out timer
function setTimer() {
    // time after mouse moves away from menu heading before menu is hidden
    menuTimeout = setTimeout("timeUp()",150);
}

// check menu status and see if we should hide the last menu
function timeUp() {
    if (inMenu == 0) {
        hideMenu(curLayer,curImage);
    }
}

