function popup_testimonial(file) {
	window.open(file,'name','width=570,height=660,top=50,left=50,scrollbars=1,resizable=1,status=1,location=1,toolbar=0,menubar=1');
}

function popup_sample(file) {
	window.open(file,'name','width=540,height=355,top=50,left=50,scrollbars=0,resizable=1,status=0,location=0,toolbar=0,menubar=0');
}

function popup_screen(filename) {
	window.open(filename, 'screens', 'width=680,height=530,scrollbars=1,top=50,left=50,resizable=1,status=0,location=0,toolbar=0,menubar=0');
}

function popup_video(video_id) {
	window.open('video_player.php?vid=' + video_id, 'video', 'width=450,height=375,scrollbars=0,top=50,left=50,resizable=1,status=0,location=0,toolbar=0,menubar=0');
}



/*********************************************************
	DHTML Effects and Tools 
*********************************************************/

var FADE_SPEED = 10;  // the higher, the slower
var FADE_UNTIL = 80;  // the higher, the more opaque
var FLASH_WIDTH = 780;
var FLASH_HEIGHT = 524;

/********************************************************/

flash_image = new Image();
flash_image.src = "media/flash/flash_bg.gif";

var ie5 = (document.all && document.getElementById);
var ns6 = (!document.all && document.getElementById);
var opacity_in = 0;
var opacity_out = FADE_SPEED;
var opacity_mult = FADE_UNTIL / FADE_SPEED;
var arr_size_pos = new Array();
var pos_top = 0;
var pos_left = 0;

function play_flash(file_num) {
	fade_flash('in',1,file_num);
}
function exit_flash() {
	fade_flash('out',0,'0');
}
function alert_flash_vars() {
	alert("Please note:\nIf you become a reseller, we can COMPLETELY rebrand these\nguided tours for you to make it easy to resell our service.\nPlease contact us for details.\n");
}

// fade background in and out
function fade_flash(direction, first_time, file_num) {
	if(direction == "in") {
		if(first_time == 1) {
			arr_size_pos = get_window_size_pos();
			inner_left = (arr_size_pos[0] - FLASH_WIDTH) / 2;
			inner_top = (arr_size_pos[1] - FLASH_HEIGHT) / 2;
			outer_top = arr_size_pos[3];
			document.getElementById('flash_wrapper_outer').style.display = "block";
			document.getElementById('flash_wrapper_outer').style.top = outer_top + 'px';
			document.getElementById('flash_wrapper_outer').style.height = "100%";
			document.getElementById('flash_fader').style.display = "block";
			document.getElementById('flash_wrapper_inner').style.display = "block";
			document.getElementById('flash_wrapper_inner').style.top = inner_top + 'px';
			document.getElementById('flash_wrapper_inner').style.left = inner_left + 'px';

			// hide dropdown boxes (for IE)
			//if(document.getElementById('connection'))
				//document.getElementById('connection').style.display = "none";
			//if(document.getElementById('best_way'))
				//document.getElementById('best_way').style.display = "none";
		}
		if(opacity_in < FADE_SPEED) {
			opacity_in += 1;
			opacity_calc = opacity_in * opacity_mult;
			if(ie5) {
				document.getElementById('flash_fader').filters.alpha.opacity = opacity_calc;
				document.getElementById('flash_wrapper_inner').filters.alpha.opacity = opacity_calc;
			}
			if(ns6) {
				document.getElementById('flash_fader').style.MozOpacity = opacity_calc * 0.01;
				document.getElementById('flash_wrapper_inner').style.MozOpacity = opacity_calc * 0.01;
			}
			setTimeout("fade_flash('in', 0, '" + file_num + "')", 1);
		} else {
			// stop fading; set flash background to 100%
			if(ie5)
				document.getElementById('flash_wrapper_inner').filters.alpha.opacity = 100;
			if(ns6)
				document.getElementById('flash_wrapper_inner').style.MozOpacity = 1;

			// configure the flash to play
			var flash_vars;
			if(file_num == 100)
				flash_vars = "";
			else
				flash_vars = "?current_file_html=" + file_num;
			var flash_string = "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0\" width=\"760\" height=\"504\" id=\"shell\" align=\"middle\">";
			flash_string += "<param name=\"allowScriptAccess\" value=\"sameDomain\" />";
			flash_string += "<param name=\"movie\" value=\"flash/shell6.swf" + flash_vars + "\" />";
			flash_string += "<param name=\"loop\" value=\"false\" />";
			flash_string += "<param name=\"menu\" value=\"true\" />";
			flash_string += "<param name=\"quality\" value=\"high\" />";
			flash_string += "<param name=\"wmode\" value=\"opaque\" />";
			flash_string += "<param name=\"bgcolor\" value=\"#ffffff\" />";
			flash_string += "<embed src=\"flash/shell6.swf" + flash_vars + "\" loop=\"false\" menu=\"true\" quality=\"high\" wmode=\"opaque\" bgcolor=\"#ffffff\" width=\"760\" height=\"504\" name=\"shell\" align=\"middle\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" />";
			flash_string += "</object>";

			document.getElementById('flash_container').style.display = "block";
			document.getElementById('flash_container').innerHTML = flash_string;
		}

	} else {

		document.getElementById('flash_container').style.display = "none";
		if(opacity_out > 0) {
			opacity_out -= 1;
			opacity_calc = opacity_out * opacity_mult;
			if(ie5) {
				document.getElementById('flash_fader').filters.alpha.opacity = opacity_calc;
				document.getElementById('flash_wrapper_inner').filters.alpha.opacity = opacity_calc;
			}
			if(ns6) {
				document.getElementById('flash_fader').style.MozOpacity = opacity_calc * 0.01;
				document.getElementById('flash_wrapper_inner').style.MozOpacity = opacity_calc * 0.01;
			}
			setTimeout("fade_flash('out', 0, '0')", 1);
		} else {
			// show dropdown boxes (for IE)
			if(document.getElementById('connection'))
				document.getElementById('connection').style.display = "block";
			if(document.getElementById('best_way'))
				document.getElementById('best_way').style.display = "block";

			document.getElementById('flash_fader').style.display = "none";
			document.getElementById('flash_wrapper_inner').style.display = "none";
			document.getElementById('flash_wrapper_outer').style.display = "none";
			// reset variables
			opacity_in = 0;
			opacity_out = FADE_SPEED;
		}
	}
}


function get_window_size_pos() {

	var win_width = 0;
	var win_height = 0;
	var scroll_x = 0;
	var scroll_y = 0;

	// get window size
	if(typeof(window.innerWidth) == 'number') {
		//Non-IE
		win_width = window.innerWidth;
		win_height = window.innerHeight;
	} else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
		//IE 6+ in 'standards compliant mode'
		win_width = document.documentElement.clientWidth;
		win_height = document.documentElement.clientHeight;
	} else if(document.body && (document.body.clientWidth || document.body.clientHeight)) {
		//IE 4 compatible
		win_width = document.body.clientWidth;
		win_height = document.body.clientHeight;
	}

	// get scrolled position
	if(typeof(window.pageYOffset) == 'number') {
		//Netscape compliant
		scroll_y = window.pageYOffset;
		scroll_x = window.pageXOffset;
	} else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) {
		//DOM compliant
		scroll_y = document.body.scrollTop;
		scroll_x = document.body.scrollLeft;
	} else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
		//IE6 standards compliant mode
		scroll_y = document.documentElement.scrollTop;
		scroll_x = document.documentElement.scrollLeft;
	}
	return [win_width,win_height,scroll_x,scroll_y];
}



/********************************
         form validation
********************************/

function validate_quick_quote(form) {

	var msg = "";
	if (form.fullname.value == "")
		msg = msg + "Please enter your name.\n";
	if (form.company.value == "")
		msg = msg + "Please enter your company.\n";
	if (form.phone.value == "")
		msg = msg + "Please enter your phone number.\n";
	if (!validate_email(form.email.value))
		msg = msg + "Please enter a valid email address.\n";
	if (form.cb1_1.checked == 0 && form.cb1_2.checked == 0 && form.cb1_3.checked == 0 && form.cb1_4.checked == 0 && form.os_other.value == "") {
		if(form.VAR_version.value == 1)
			msg = msg + "Please select the platform(s) that your customer uses.\n";
		else
			msg = msg + "Please select the operating system(s) that you use.\n";
	}
	if (form.cb2_1.checked == 0 && form.cb2_2.checked == 0 && form.cb2_3.checked == 0 && form.cb2_4.checked == 0 && form.cb2_5.checked == 0 && form.cb2_6.checked == 0 && form.other_comments.value == "")
		msg = msg + "Please select the type(s) of data to be backed up.\n";
	if (form.connection.value == "")
		msg = msg + "Please select the type of Internet connection.\n";
	if (form.amt_data.value == "")
		msg = msg + "Please enter the amount of data to be backed up.\n";

	if (msg != "") {
		alert (msg);
		return false;
	}

	form.submit();
}


function validate_email(email) {
	var err = 0;

	if (email==null)
		err = 1;
	if (email.length==0)
		err = 1;
	if (!allValidChars(email))  // check to make sure all characters are valid
		err = 1;
	if (email.indexOf("@") < 1) //  must contain @, and it must not be the first character
		err = 1;
	if (email.lastIndexOf(".") <= email.indexOf("@"))  // last dot must be after the @
		err = 1;
	if (email.indexOf("@") == email.length)  // @ must not be the last character
		err = 1;
	if (email.indexOf("..") >=0) // two periods in a row is not valid
		err = 1;
	if ((email.indexOf(".")+1) == email.length) {  // . must not be the last character
		err = 1;
    }

	if (err == 1)
        return false;
	else
		return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}


function verify_free_trial(form) {

	var msg = "";

	if (form.first_name.value == "")
		msg = msg + "Please enter your first name.\n";
	if (form.last_name.value == "")
		msg = msg + "Please enter your last name.\n";
	if (form.company.value == "")
		msg = msg + "Please enter your company name.\n";
	if (form.phone.value == "")
		msg = msg + "Please enter your phone number.\n";
	if (form.email.value == "")
		msg = msg + "Please enter your email address.\n";
	if (form.howheard.value == "")
		msg = msg + "Please enter how you have heard of us.  \n";

	if (msg != "") {
		alert (msg);
		return false;
	}

	form.submit();
}


function verifyResources(form) {

	var msg = "";

	if (form.first_name.value == "")
		msg = msg + "Please enter your first name.\n";
	if (form.last_name.value == "")
		msg = msg + "Please enter your last name.\n";
	if (form.company.value == "")
		msg = msg + "Please enter your company name.\n";
	if (form.phone.value == "")
		msg = msg + "Please enter your phone number.\n";
	if (!validate_email(form.email.value))
		msg = msg + "Please enter a valid email address.\n";

	if (msg != "") {
		alert (msg);
		return false;
	}

	form.submit();
}


function verifyVarSignup(form) {

	var msg = "";

	if (form.fullname.value == "")
		msg = msg + "Please enter your first name.\n";
	if (form.title.value == "")
		msg = msg + "Please enter your job title.\n";
	if (form.company.value == "")
		msg = msg + "Please enter your company name.\n";
	if (form.street.value == "")
		msg = msg + "Please enter your street address.\n";
	if (form.city.value == "")
		msg = msg + "Please enter your city.\n";
	if (form.email.value == "")
		msg = msg + "Please enter your email address.\n";
/*
	if (form..value == "")
		msg = msg + "Please enter your .\n";
	if (form..value == "")
		msg = msg + "Please enter your .\n";
	if (form..value == "")
		msg = msg + "Please enter your .\n";
*/

	if (msg != "") {
		alert (msg);
		return false;
	}

	form.submit();
}


function verify_home_quote(form) {

	if (form.fullname.value == "") {
		toggle_step(1);
		alert("Please enter your name.");
		form.fullname.focus();
		return false;
	}
	if (form.company.value == "") {
		toggle_step(1);
		alert("Please enter your company name.");
		form.company.focus();
		return false;
	}
	if (!validate_email(form.email.value)) {
		toggle_step(1);
        alert("Please enter a valid email address.");
		form.email.focus();
		return false;
	}
	if (form.os.value == "") {
		toggle_step(2);
        alert("Please enter the operating systems are you using.");
		form.os.focus();
		return false;
	}
	if (form.data_types.value == "") {
		toggle_step(2);
        alert("Please describe the types of data would you like to back up.");
		form.data_types.focus();
		return false;
	}
	if (form.connection.value == "") {
        alert("Please select the type of Internet connection that best approximates what you use.");
		form.connection.focus();
		return false;
	}
	if (form.amt_data.value == "") {
        alert("Please enter the approximate amount of data you need to protect.");
		form.amt_data.focus();
		return false;
	}

	form.submit();
}

function verify_contact_form(form) {
	var msg = "";

	if (form.fullname.value == "")
		msg = msg + "Please enter your first name.\n";
	if (!validate_email(form.email.value))
		msg = msg + "Please enter a valid email address.\n";
	if (form.comments.value == "")
		msg = msg + "Please enter your comments.\n";
	if (form.phone_contact.checked) {
		if(form.phone.value == "")
			msg = msg + "Please enter your company phone number.\n";
	}

	if (msg != "") {
		alert (msg);
		return false;
	}

	form.submit();
}

function validate_address_zip_form(form) {
	var msg = "";

	if (form.zip_postal && form.zip_postal.value == "")
		msg = msg + "Please enter your company zip/postal code.\n";
	if (form.street && form.street.value == "")
		msg = msg + "Please enter your company address.\n";

	if (msg != "") {
		alert (msg);
		return false;
	}

	form.submit();
}

function submit_free_trial_skip_address(form, skip_address, fstep, ftrial, fsource, fsection) {
	function updateFormParam(param, val) {
		if (form[param] === undefined) {
			var el = document.createElement("input");
			el.type = "hidden";
			el.name = param;
			el.value = val;
			form.appendChild(el);
		}
		form[param].value = val;
	}
	updateFormParam('skip_address', skip_address);
	updateFormParam('form_step', fstep);
	updateFormParam('free_trial', ftrial);
	updateFormParam('form_source', fsource);
	updateFormParam('section_from', fsection);
	form.submit();
}


/********************************
         flash movie
********************************/

/*
sample usage (enclose the following in script tags):

var oMovie = new FlashMovie();
oMovie.Src = "my_swf.swf";
oMovie.Name = "mySwfId";
oMovie.Width = 750;
oMovie.Height = 530;
oMovie.AddParameter('favoriteIceCream', 'chocolate'); //this is obviously optional- adds both a parameter tag and embed attribute
oMovie.Render();

alternately, you can use arguments in the constructor:
var oMovie = new FlashMovie("my_swf.swf", "mySwfId", 750, 530);
oMovie.Render();

for debugging:
alert(oMovie.GetTag());

to include non-flash alternate content, use the <noscript> tag

*/

function FlashMovie(sSrc, sName, nWidth, nHeight) {
	this.Src = sSrc ? sSrc : null;
	this.Width = nWidth ? nWidth : null;
	this.Height = nHeight ? nHeight : null;
	this.Name = sName ? sName : "";
	this.Loop = false;
	this.Quality = "high";
	this.BgColor = "#FFFFFF";
	this.Menu = false;
	this.Align = "";
	this.Wmode = "";
	
	this.m_arrParamNames = new Array();
	this.m_arrParamValues = new Array();
	this.AddParameter = FlashMovieAddParameter;
	
	this.GetTag = function() { return FlashMovieGetTag(this); };
	this.Render = function() { document.write(FlashMovieGetTag(this)); }
}

function FlashMovieAddParameter(sName, sValue) {
	this.m_arrParamNames[this.m_arrParamNames.length] = sName;
	this.m_arrParamValues[this.m_arrParamValues.length] = sValue;
}

function FlashMovieGetTag(oFlash) {
	var sTag = '';
	
	if (!oFlash.Src) {
		alert('missing flash src attribute');
	}

	sTag += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" \n';
	sTag += 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" \n';
	sTag += 'id="' + oFlash.Name + '" \n';
	
 	if (oFlash.Width) {
		sTag += 'width="' + oFlash.Width + '" \n';
	}
 	if (oFlash.Height) {
		sTag += 'height="' + oFlash.Height + '" \n';
	}
 	if (oFlash.Align) {
		sTag += 'align="' + oFlash.Align + '" \n';
	}
	sTag += '> \n';
	
	//write parameter tags
	sTag += '<param name=movie value="' + oFlash.Src + '"> \n';
	sTag += '<param name=menu value="' + oFlash.Menu + '"> \n';
	sTag += '<param name=quality value="' + oFlash.Quality + '"> \n';
	sTag += '<param name=bgcolor value="' + oFlash.BgColor + '"> \n';
	sTag += '<param name=loop value="' + oFlash.Loop + '"> \n';
	sTag += '<param name=wmode value="' + oFlash.Wmode + '"> \n';
	
	//write any additional parameter tags
	for (var i=0; i<oFlash.m_arrParamNames.length; i++) {
		sTag += '<param name=' + oFlash.m_arrParamNames[i] + ' value="' + oFlash.m_arrParamValues[i] + '"> \n';
	}
	
	//write embed tag
	sTag += '<embed src="' + oFlash.Src + '" ';
	sTag += 'type="application/x-shockwave-flash" ';
	sTag += 'pluginspage="http://www.macromedia.com/go/getflashplayer" ';
	sTag += 'loop="' + oFlash.Loop + '" ';
	sTag += 'menu="' + oFlash.Menu + '" ';
	sTag += 'quality="' + oFlash.Quality + '" ';
	sTag += 'bgcolor="' + oFlash.BgColor + '" ';
	if (oFlash.Wmode) {
		sTag += 'wmode="' + oFlash.Wmode + '" ';
	}

 	if (oFlash.Width) {
		sTag += 'width="' + oFlash.Width + '" ';
	}
 	if (oFlash.Height) {
		sTag += 'height="' + oFlash.Height + '" ';
	}
 	if (oFlash.Align) {
		sTag += 'align="' + oFlash.Align + '" ';
	}
	
	//write any additional embed attributes
	for (i=0; i<oFlash.m_arrParamNames.length; i++) {
		sTag += oFlash.m_arrParamNames[i] + '="' + oFlash.m_arrParamValues[i] + '" ';
	}
	sTag += '>\n';
	sTag += '</embed>\n';
	sTag += '</object>\n';
	
	return sTag;
}

