﻿/******************************************************************************
* Load a selected project on the home page                                    *
******************************************************************************/
function LoadProject(moviefile, project_details, contact_name, contact_email) {
    var so = new SWFObject("movies/movie.swf", "project", "560", 
        "417", "8", "");
    so.setAttribute("useExpressInstall", "true");
    so.addVariable("filePath", moviefile);
    so.write("project_movie");
    var details = null;
    var detail_header = null;
    var contact = null;
    if (document.getElementById)
    {
        details = document.getElementById("details");
        detail_header = document.getElementById("detail_header");
        contact = document.getElementById("contact");
    }
    else
    {
        details = document.all["details"];
        detail_header = document.all["detail_header"];
        contact = document.all["contact"];
    }
    if (details != null)
    {
        details.innerHTML = project_details;
    }
    if (detail_header != null)
    {
        detail_header.innerHTML = "Project Details";
    }
    if (contact != null)
    {
        contact.innerHTML = "Contact <a href=\"mailto:" + contact_email + "@biggs-gilmore.com\">"
            + contact_name + "</a> for more details.";
    }
    document.title = "Biggs|Gilmore";
}

/******************************************************************************
* Validation functions                                                        *
******************************************************************************/ 
String.prototype.trim = function () {
	return this.replace(/^\s+|\s+$/g, "");
}

String.prototype.isEmpty = function() {
  return ((this == null) || (this.length == 0) || /^\s+$/.test(this));
}

String.prototype.isEmail = function() {
	return /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(this);
}

String.prototype.isZIP = function() {
  return (/^[0-9]{5}$/.test(this));
}

String.prototype.isNumeric = function() {
  return (/^[0-9]?$/.test(this));
}

String.prototype.isPhone = function() {
  return (/^(\(?\d\d\d\)?)?( |-|\.)?\d\d\d( |-|\.)?\d{4,4}$/.test(this));
}

String.prototype.isDate = function()
{
	
	var regex = /(^\d{1,2})\/(\d{1,2})\/(\d{4,4})|(^\d{1,2})\/(\d{1,2})\/(\d{2,2})/;
	
	if( regex.test(this) )
	{
		var month = new String(RegExp.$1);
		var day = new String(RegExp.$2);
		var year = new String(RegExp.$3);
		if( month.length == 0 )
		{
			month = new String(RegExp.$4);
			day = new String(RegExp.$5);
			year = new String(RegExp.$6);
		}
		
		var today = new Date();
		var thisYear = new String(today.getFullYear());
		
		if( year.length == 2 )
		{					
			if( year > 50 )
			{
				year = String(Number(thisYear.substring(0,2))-1) + year;
			}
			else
			{
				year = thisYear.substring(0,2) + year;
			}
		}
		
		if( month < 1 || month > 12 ) { return false; }

		if( day < 1 || day > 31 ) { return false; }

		if ((month==4 || month==6 || month==9 || month==11) && day>30) { return false; }

		if (month == 2) // check for february 29th
		{ 
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day>29 || (day==29 && !isleap)) 
			{
				return false;
			}
		}		
		
		if( (Number(year) < Number(thisYear) - 250) ||
			(Number(year) > Number(thisYear) + 250) )
			{ return false; }
			
		return true;
	}
	return false;
}

//stolen/adapted from registration
hideErr = function(el) {
    Element.hide(el);
    el.innerHTML = "";
}
 
showErr = function(el, msg) {
    Element.show(el);
    el.innerHTML = msg;
    /*new Effect.Appear(el, {duration: 1});*/
}

/******************************************************************************
* Main site validation                                                        *
******************************************************************************/ 
//Contact Us
function validateContactUs() {
    var result = true;
    errors = $$("span.error");
    for(ii = 0; ii < errors.length; ii++)
    {
        hideErr(errors[ii]);
    }
    if($("name").value.isEmpty()) {
        showErr($("name_error"), "Please enter a Name.");
        result = false;
    }
        
            
    if($("email").value.isEmpty()) {
        showErr($("email_error"), "Please enter an E-mail Address.");
        result = false;
    }
    else
    {
        if($("email").value.isEmail() == false) {
            showErr($("email_error"), "Please enter an E-mail Address in the following format: yourname@example.com.");
            result = false;
        }
    }
    
    if($("topic").selectedIndex == 0) {
            showErr($("topic_error"), "Please select an option");
            result = false;
            }
    

            
    return result;
}

//Newsletter
function validateNewsletter() {
    var result = true;
    errors = $$("span.error");
    for(ii = 0; ii < errors.length; ii++)
    {
        hideErr(errors[ii]);
    }
    if($("name").value.isEmpty()) {
        showErr($("name_error"), "Please enter a Name.");
        result = false;
    }
    if($("email").value.isEmpty()) {
        showErr($("email_error"), "Please enter an E-mail Address.");
        result = false;
    }
    else
    {
        if($("email").value.isEmail() == false) {
            showErr($("email_error"), "Please enter an E-mail Address in the following format: yourname@example.com.");
            result = false;
        }
    }
    return result;
}

//Application
function validateApplication() {
    var result = true;
    errors = $$("span.error");
    for(ii = 0; ii < errors.length; ii++)
    {
        hideErr(errors[ii]);
    }
    if($("firstname").value.isEmpty()) {
        showErr($("firstname_error"), "Please enter a First Name.");
        result = false;
    }
    if($("lastname").value.isEmpty()) {
        showErr($("lastname_error"), "Please enter a Last Name.");
        result = false;
    }
    if($("email").value.isEmpty()) {
        showErr($("email_error"), "Please enter an E-mail Address.");
        result = false;
    }
    else
    {
        if($("email").value.isEmail() == false) {
            showErr($("email_error"), "Please enter an E-mail Address in the following format: yourname@example.com.");
            result = false;
        }
    }
    if($("years").value.isEmpty()) {
        showErr($("years_error"), "Please select Years of Experience.");
        result = false;
    }

    if($("dayphone").value.isEmpty() == false && $("dayphone").value.isPhone() == false) {
        showErr($("dayphone_error"), "Please enter a valid 10-digit Daytime Phone number.");
        result = false;
    }
    if($("evephone").value.isEmpty() == false && $("evephone").value.isPhone() == false) {
        showErr($("evephone_error"), "Please enter a valid 10-digit Evening Phone number.");
        result = false;
    }
    if($("file1").value.isEmpty()) {
        showErr($("file1_error"), "Please select a file to upload.");
        result = false;
    }
    return result;
}

/******************************************************************************
* Admin site validation                                                       *
******************************************************************************/
//News Item
function validateNewsItem() {
    var result = true;
    errors = $$("span.error");
    for(ii = 0; ii < errors.length; ii++)
    {
        errors[ii].innerHTML = "";
    }
    if($("date").value.isEmpty()) {
        $("date_error").innerHTML = "Please enter a Release Date.";
        result = false;
    }
    else
    {
        alert("Date test:" + $("date").value.isDate());
        if($("date").value.isDate() == false)
        {
            $("date_error").innerHTML = "Please enter a valid Release Date in the following format: MM/DD/YYYY.";
            result = false;
        }
    }
    if($("headline").value.isEmpty()) {
        $("headline_error").innerHTML = "Please enter a Headline.";
        result = false;
    }
    if($("link").value.isEmpty() == false && $("linktext").value.isEmpty()) {
        $("linktext_error").innerHTML = "Please enter Link Text.";
        result = false;
    }
    return result;
}

//Project
function validateProject() {
    var result = true;
    errors = $$("span.error");
    for(ii = 0; ii < errors.length; ii++)
    {
        errors[ii].innerHTML = "";
    }
    if($("title").value.isEmpty()) {
        $("title_error").innerHTML = "Please enter a Title.";
        result = false;
    }
    if($("company").value.isEmpty()) {
        $("company_error").innerHTML = "Please enter a Company.";
        result = false;
    }
    if($("details").value.isEmpty()) {
        $("details_error").innerHTML = "Please enter the Project Details.";
        result = false;
    }
    if($("movie").value.isEmpty()) {
        $("movie_error").innerHTML = "Please upload a Movie.";
        result = false;
    }
    else
    {
        var extension = $("movie").value.substring($("movie").value.lastIndexOf(".")).toLowerCase();
        if(extension != ".flv" && extension != ".swf") {
            $("movie_error").innerHTML = "Please upload a valid .flv or .swf file.";
            result = false;
        }    
    }
    if($("contactname").value.isEmpty()) {
        $("contactname_error").innerHTML = "Please enter a Contact Name.";
        result = false;
    }
    if($("contactemail").value.isEmpty()) {
        $("contactemail_error").innerHTML = "Please enter a Contact E-mail Address.";
        result = false;
    }
    else
    {
        if($("contactemail").value.isEmail() == false) {
            $("contactemail_error").innerHTML = "Please enter a Contact E-mail Address in the following format: yourname@example.com.";
            result = false;
        }    
    }
    if($("order").value.isEmpty() == false && $("order").value.isNumeric() == false) {
        $("order_error").innerHTML = "Please enter a numeric Order.";
        result = false;
    }
    return result;
}

//Department
function validateDepartment() {
    var result = true;
    errors = $$("span.error");
    for(ii = 0; ii < errors.length; ii++)
    {
        errors[ii].innerHTML = "";
    }
    if($("name").value.isEmpty()) {
        $("name_error").innerHTML = "Please enter a Department Name.";
        result = false;
    }
    if($("desc").value.isEmpty()) {
        $("desc_error").innerHTML = "Please enter a Department Description.";
        result = false;
    }
    //load all of the job titles and base the rest of the validation on that
    var jobTitles = document.getElementsByClassName("job_title");
    for(ii = 0; ii < jobTitles.length; ii++) {
        //validate the title itself
        if(jobTitles[ii].value.isEmpty()) {
            $(jobTitles[ii].id + "_error").innerHTML = "Please enter a Job Title.";
            result = false;
        }
        
        //now check the description
        var descId = jobTitles[ii].id.substring(0, (jobTitles[ii].id.lastIndexOf("_"))) + "_desc";
        if($(descId).value.isEmpty())
        {
            $(descId +"_error").innerHTML = "Please enter a Job Description.";
            result = false;
        }        
    }
    return result;
}

//Posting
function validatePosting() {
    var result = true;
    errors = $$("span.error");
    for(ii = 0; ii < errors.length; ii++)
    {
        errors[ii].innerHTML = "";
    }
    if($("position").value.isEmpty()) {
        $("position_error").innerHTML = "Please enter a Position.";
        result = false;
    }
    if($("dept").value.isEmpty()) {
        $("dept_error").innerHTML = "Please select a Department.";
        result = false;
    }
    if($("job").value.isEmpty()) {
        $("job_error").innerHTML = "Please select a Job Title.";
        result = false;
    }
    if($("desc").value.isEmpty()) {
        $("desc_error").innerHTML = "Please enter a Description.";
        result = false;
    }
    if($("qualifications").value.isEmpty()) {
        $("qualifications_error").innerHTML = "Please enter the Qualification.";
        result = false;
    }
    return result;
}

// parseQuery deals with query string
parseQuery = function() {
	var returnVals = new Array();
	qString = new String(window.location);
	var queryStart = qString.indexOf('?');
	if (queryStart==-1) {
		return returnVals;
	}
	var query = qString.substring(queryStart + 1, qString.length);
	var parts = query.split("&");
	for (var i=0; i<parts.length; i++) {
		bits = parts[i].split("=");
		if(bits[1]) {
			subbits = bits[1].split("#"); // added by T.D. to handle fragment identifier in URL
			returnVals[bits[0]] = subbits[0];
		}
	}
	return returnVals;
}

var query = parseQuery();

var footerTweak = function(){
	if(document.body.className.indexOf("home") == -1 && document.body.className.indexOf("view") == -1){
		var chi = document.getElementById('chicago');
		var kaz = document.getElementById('kazoo');
		chi.style.marginLeft = '-'+chi.offsetWidth+'px';
		kaz.style.marginLeft = '-'+kaz.offsetWidth+'px';
		kaz.parentNode.style.left = '-'+parseInt(chi.offsetWidth)/2+'px';
	}
}
try {
	footerTweak();
	}
catch(err) {
	var retryFooter = setTimeout("footerTweak()",50);
}
