function submitContactUsOnEnter(e) {
	var keycode;
	if (window.event)
		keycode = window.event.keyCode; // IE
	else if (e)
		keycode = e.which; // FF
	else
		return true;
		
	if (keycode == 13) {
		submitContactUs();
		return false;
	}
	else {
		return true;
	}
}

function submitContactUs() {
	// data
	var valid = true;
	var errMsg = '';
	
	// validate fields in demo form
	if (!validateDropDown('about')) {
		valid = false;
		errMsg += 'Please indicate what your question is about.<br />';
	}
	if (!validateText('first_name')) {
		valid = false;
		errMsg += 'First Name is required.<br />';
	}
	if (!validateText('last_name')) {
		valid = false;
		errMsg += 'Last Name is required.<br />';
	}
	if (!validateText('title')) {
		valid = false;
		errMsg += 'Title is required.<br />';
	}
	if (!validateText('company')) {
		valid = false;
		errMsg += 'Company is required.<br />';
	}
	if (!validateText('phone')) {
		valid = false;
		errMsg += 'Phone is required.<br />';
	}
	if (!validateEmail('email')) {
		valid = false;
		errMsg += 'Email is required.<br />';
	}
	if (!validateText('comment')) {
		valid = false;
		errMsg += 'Your Question is required.<br />';
	}
	
	if (!valid) {
		var errElem = getById('validateError');
		errElem.innerHTML = '<font color="red">' + errMsg + '<br /></font>';
	}
	else {
		var errElem = getById('validateError');
		errElem.innerHTML = '';
		
		getForm().submit();
	}
}

function cancelCustomDemo() {
	var previewdiv = getById('previewdiv');
	var viewerdiv = getById('viewerdiv');
	var requestdiv = getById('requestdiv');
	var headerdiv = getById('demoheader');
	
	previewdiv.style.display = '';
	viewerdiv.style.display = 'none';
	requestdiv.style.display = 'none';
	headerdiv.style.display = '';
}

function requestCustomDemo() {

	var previewdiv = getById('previewdiv');
	var viewerdiv = getById('viewerdiv');
	var requestdiv = getById('requestdiv');
	var headerdiv = getById('demoheader');
	var videoobject = getById('videoplayerobject');
	var videoembed = getById('videoplayerembed');
	var filenameparam = getById('videoFileName');
	
	previewdiv.style.display = 'none';
	viewerdiv.style.display = 'none';
	requestdiv.style.display = '';
	headerdiv.style.display = 'none';

	var url = "./";

	if (videoobject != null) {
		videoobject.URL = url;
		videoobject.data = url;
		filenameparam.value = url;
	}
	if (videoembed != null)
		videoembed.src = url;


	var cookie = getCookie();
	if (cookie != null) {
		var name = getDataFromCookie('Name');
		var title = getDataFromCookie('Title');
		var company = getDataFromCookie('Company');
		var country = getDataFromCookie('Country');
		var state = getDataFromCookie('USState');
		var email = getDataFromCookie('Email');
		var phone = getDataFromCookie('Phone');
		
		var form = getForm();
		form.name.value = name;
		form.title.value = title;
		form.company.value = company;
		form.phone.value = phone;
		form.email.value = email;
		form.state.value = state;
		form.country.value = country;
	}
}

function playDemo(demoType) {

	var external = getById('videoexternal');
	var div = getById('viewerdiv');
	var previewdiv = getById('previewdiv');
	var requestdiv = getById('requestdiv');
	var videoobject = getById('videoplayerobject');
	var videoembed = getById('videoplayerembed');
	var filenameparam = getById('videoFileName');
	var width = 700;
	var height = 525;

	div.style.display = '';
	requestdiv.style.display = 'none';
	previewdiv.style.display = 'none';
	
	// set URL
	var url = 'http://www.siteops.com/products/' + demoType + '.asx';
	if (videoobject != null) {
		videoobject.URL = url;
		videoobject.data = url;
		filenameparam.value = url;
	}
	if (videoembed != null)
		videoembed.src = url;
	
	// set in href
	external.href = url;
	
	// resize
	if (videoobject != null) {
		videoobject.width = width;
		videoobject.height = height;
	}
	if (videoembed != null) {
		videoembed.width = width;
		videoembed.height = height;
	}
}

function submitOnEnter(e) {
	var keycode;
	if (window.event)
		keycode = window.event.keyCode; // IE
	else if (e)
		keycode = e.which; // FF
	else
		return true;
		
	if (keycode == 13) {
		validateDemoForm('3acre');
		return false;
	}
	else {
		return true;
	}
}

function submitCustomDemoOnEnter(e) {
	var keycode;
	if (window.event)
		keycode = window.event.keyCode; // IE
	else if (e)
		keycode = e.which; // FF
	else
		return true;
		
	if (keycode == 13) {
		submitCustomDemo();
		return false;
	}
	else {
		return true;
	}
}

function submitCustomDemo() {
	// data
	var valid = true;
	var errMsg = '';
	
	// validate fields in demo form
	if (!validateText('name')) {
		valid = false;
		errMsg += 'Name is required.<br />';
	}
	if (!validateText('title')) {
		valid = false;
		errMsg += 'Title is required.<br />';
	}
	if (!validateText('company')) {
		valid = false;
		errMsg += 'Company is required.<br />';
	}
	if (!validateDropDown('country')) {
		valid = false;
		errMsg += 'Country is required.<br />';
	}
	var countryBox = getFromFormById('country');
	var country = countryBox.options[countryBox.selectedIndex].value;
	if ('USA' == country || '' == country) {
	 	if (!validateDropDown('state')) {
			valid = false;
			errMsg += 'US State is required.<br />';
	 	}
	}
	else {
		var stateBox = getFromFormById('state');
		stateBox.selectedIndex = 0;
	}
	if (!validateText('phone')) {
		valid = false;
		errMsg += 'Phone is required.<br />';
	}
	if (!validateEmail('email')) {
		valid = false;
		errMsg += 'Email is required.<br />';
	}
	
	if (!valid) {
		var errElem = getById('validateError');
		errElem.innerHTML = '<font color="red">' + errMsg + '<br /></font>';
	}
	else {
		var errElem = getById('validateError');
		errElem.innerHTML = '';
		
		getForm().submit();
	}
}

function validateDemoForm(demoType) {

	// check if cookie set
	if (getCookie() != null) {
		var newURL = "http://www.siteops.com/products/demoview.shtml?demo=" + escape(demoType);
		window.location = newURL;
		return;
	}

	// data
	var valid = true;
	var errMsg = '';
	
	// validate fields in demo form
	if (!validateText('first_name')) {
		valid = false;
		errMsg += 'First Name is required.<br />';
	}
	if (!validateText('last_name')) {
		valid = false;
		errMsg += 'Last Name is required.<br />';
	}	
	if (!validateText('title')) {
		valid = false;
		errMsg += 'Title is required.<br />';
	}
	if (!validateText('company')) {
		valid = false;
		errMsg += 'Company is required.<br />';
	}
	if (!validateDropDown('00N50000001h1Sr')) {
		valid = false;
		errMsg += 'Company Type is required.<br />';
	}
	if (!validateDropDown('country')) {
		valid = false;
		errMsg += 'Country is required.<br />';
	}
	var countryBox = getFromFormById('country');
	var country = countryBox.options[countryBox.selectedIndex].value;
	if ('USA' == country || '' == country) {
	 	if (!validateDropDown('state')) {
			valid = false;
			errMsg += 'US State is required.<br />';
	 	}
	}
	else {
		var stateBox = getFromFormById('state');
		stateBox.selectedIndex = 0;
	}
	if (!validateText('phone')) {
		valid = false;
		errMsg += 'Phone is required.<br />';
	}
	if (!validateEmail('email')) {
		valid = false;
		errMsg += 'Email is required.<br />';
	}
	if (!validateDropDown('00N50000001iD13')) {
		valid = false;
		errMsg += 'Please indicate how you did hear about SITEOPS.<br />';
	}
	if (!validateDropDown('00N50000001iCw3')) {
		valid = false;
		errMsg += 'Please indicate how many projects you run annually.<br />';
	}
	if (!validateDropDown('00N50000001iCvF')) {	
		valid = false;
		errMsg += 'Please indicate the average size of your projects.<br />';
	}
	
	if (!valid) {
		var errElem = getById('validateError');
		errElem.innerHTML = '<font color="red">' + errMsg + '</font>';
	}
	else {
		var errElem = getById('validateError');
		errElem.innerHTML = '';
		writeCookie();
		
		// set hidden field with value from button
		var watched = getFromFormById('00N500000029xfy');
		watched.value = demoType;

		// set retURL
		var retURL = getFromFormById('retURL');
		retURL.value = "http://www.siteops.com/products/demoview.shtml?demo=" + escape(demoType);
				
		getForm().submit();
	}
}

function writeCookie() {

	// create expiration
	var days = 365;
	var date = new Date();
	date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
	var expires = "; expires=" + date.toUTCString();
	
	// create data
	var firstName = getFromFormById('first_name').value.trim();
	var lastName = getFromFormById('last_name').value.trim();
	var title = getFromFormById('title').value.trim();
	var company = getFromFormById('company').value.trim();
	var email = getFromFormById('email').value.trim();
	var phone = getFromFormById('phone').value.trim();
	var stateElem = getFromFormById('state');
	var state = stateElem.options[stateElem.selectedIndex].value.trim();
	var country = getFromFormById('country').value.trim();
	
	var cookie = 'Name: ' + firstName + ' ' + lastName + '\n';
	cookie += 'Title: ' + title + '\n';
	cookie += 'Company: ' + company + '\n';
	cookie += 'Country: ' + country + '\n';
	cookie += 'USState: ' + state + '\n';
	cookie += 'Email: ' + email + '\n';
	cookie += 'Phone: ' + phone;
	
	// set cookie
	document.cookie = "siteopsdemo=" + escape(cookie) + expires;	
}

function checkForCookie() {

	var found = false;
	var data = null;	
	
	if (document.cookie.length > 0) {
		var start = document.cookie.indexOf("siteopsdemo=");
		if (start != -1)
			window.location = 'http://www.siteops.com/products/demoview.shtml'; 
	}
}

function getCookie() {
	var data = null;	
	
	if (document.cookie.length > 0) {
		var start = document.cookie.indexOf("siteopsdemo=");
		if (start != -1) {
			start = start + "siteopsdemo=".length;
			var end = document.cookie.indexOf(";", start);
			if (end == -1)
				end = document.cookie.length;
			data = unescape(document.cookie.substring(start, end));
		}
	}
	
	return data;
}

function getDataFromCookie(name) {
	var cookie = getCookie();
	var cookieData = cookie.split('\n');
	var searchName = name + ': ';
	var data = null;
	
	for (i = 0; i < cookieData.length; i++) {
		var index = cookieData[i].indexOf(searchName);
		if (index != -1) {
			data = cookieData[i].substring(searchName.length, cookieData[i].length);
			return data;
		}
	}
	
	return data;
}

function checkForDemo() {
	var demoType = getParamFromURL('demo');
	if (demoType != "")
		playDemo(demoType);
}

function validateText(id) {
	var elem = getFromFormById(id);
	if (elem == null) return false;
	if (elem.value.trim().length > 0) {
		return true;
	}
	else {
		return false;
	}
}

function validateEmail(id) {
	var elem = getFromFormById(id);
	if (elem == null) return false;
	
	var filter = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Za-z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum)\b/
	if (!filter.test(elem.value))
		return false;
	
	return true;	
}

function validateDropDown(id) {
	var elem = getFromFormById(id);
	if (elem == null) return false;
	var index = elem.selectedIndex;
	var val = elem.options[index].value;
	if (val.length != 0) {
		return true;
	}
	else {
		return false;
	}
}

// helper functions

function getForm() {
	return document.forms[0];
}

function getByName(name) {
	return document.getElementsByName(name)[0];
}

function getById(id) {
	return document.getElementById(id);
}

function getFromFormById(id) {
	var form = getForm();
	var elems = form.elements;
	for (i = 0; i < elems.length; i++) {
		if (elems[i].id == id)
			return elems[i];
	}
	return null;
}

function getFromFormByName(name) {
	var form = getForm();
	var elems = form.elements;
	for (i = 0; i < elems.length; i++) {
		if (elems[i].name == name)
			return elems[i];
	}
	return null;
}

String.prototype.trim = function() {
	return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function disableEnterKey(e) {
	var key;
	if (window.event)
		key = window.event.keyCode; // IE
	else
		key = e.which; // FF
	
	if (key == 13)
		return false;
	else
		return true;
}

function getParamFromURL(name) {
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]" + name + "=([^&#]*)";
	var regex = new RegExp(regexS);
	var results = regex.exec(window.location.href);
	if(results == null)
		return "";
	else
		return results[1];
}