////////////////////////////////////////////////////////////////////////////////////////////////
//form validate

function formCheck(formobj){
	// Enter name of mandatory fields
	var fieldRequired = Array("companyname", "name", "position", "email", "website", "phone",  "country");
	// Enter field description to appear in the dialog box
	var fieldDescription = Array("Company Name","Contact Name", "Position", "Company Email", "Company Website", "Company Phone",  "Country");
	// dialog message
	var alertMsg = "Please complete the following fields:\n";
	
	var l_Msg = alertMsg.length;
	
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			switch(obj.type){
			case "select-one":
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "text":
			case "textarea":
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			default:
			}
			if (obj.type == undefined){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
			}
		}
	}

	if (alertMsg.length == l_Msg){
		return true;
	}else{
		alert(alertMsg);
		return false;
	}
}

//email validation

var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i

function checkmail(e){
var returnval=emailfilter.test(e.value)
if (returnval==false){
alert("Please enter a valid email address.")
e.select()
}
return returnval
}

////////////////////////////////////////////////////////////////////////////////////////////////

//verisign
function siteseal()
{
	var win = window.open("https://seal.verisign.com/splash?form_file=fdf/splash.fdf&dn=SECURE.BACKBONESOLUTIONS.COM&lang=en", "win", "toolbar=0,location=1,directories=0,status=1,menubar=1,scrollbars=1,resizable=1,width=560,height=480");
	win.focus();
}

if(!addresses) var addresses = new Array();

addresses.push("3287 2477 2917 165 2720 2902 2635 2854 2034 1426 165 2902 176 1426 543 699 165 1404 65 699 2854 3042 176 2720 2635 1228 969 2854 2998 1982 2843 1404 2854 2917 2494 1426 2998 699 1147 176 1404 2635 1651 1148 3042 227 2998 2720 969 144 736 2635 2854 736 2011 165 1404 65 699 2854 3042 176 2720 2635 1228 969 2854 2998 1982 2843 1404 2854 2917");

// This script is (c) copyright 2006 Jim Tucek under the

// GNU General Public License (http://www.gnu.org/licenses/gpl.html)

// For more information, visit www.jracademy.com/~jtucek/email/ 

// Leave the above comments alone!



var decryption_cache = new Array();



function decrypt_string(crypted_string,n,decryption_key,just_email_address) {

	var cache_index = "'"+crypted_string+","+just_email_address+"'";



	if(decryption_cache[cache_index])					// If this string has already been decrypted, just

		return decryption_cache[cache_index];				// return the cached version.



	if(addresses[crypted_string])						// Is crypted_string an index into the addresses array

		var crypted_string = addresses[crypted_string];			// or an actual string of numbers?



	if(!crypted_string.length)						// Make sure the string is actually a string

		return "Error, not a valid index.";



	if(n == 0 || decryption_key == 0) {					// If the decryption key and n are not passed to the

		var numbers = crypted_string.split(' ');			// function, assume they are stored as the first two

		n = numbers[0];	decryption_key = numbers[1];			// numbers in crypted string.

		numbers[0] = ""; numbers[1] = "";				// Remove them from the crypted string and continue

		crypted_string = numbers.join(" ").substr(2);

	}



	var decrypted_string = '';

	var crypted_characters = crypted_string.split(' ');



	for(var i in crypted_characters) {

		var current_character = crypted_characters[i];

		var decrypted_character = exponentialModulo(current_character,n,decryption_key);

		if(just_email_address && i < 7)				// Skip 'mailto:' part

			continue;

		if(just_email_address && decrypted_character == 63)	// Stop at '?subject=....'

			break;

		decrypted_string += String.fromCharCode(decrypted_character);

	}

	

	decryption_cache[cache_index] = decrypted_string;			// Cache this string for any future calls



	return decrypted_string;

}



function decrypt_and_email(crypted_string,n,decryption_key) {

	if(!n || !decryption_key) { n = 0; decryption_key = 0; }

	if(!crypted_string) crypted_string = 0;



	var decrypted_string = decrypt_string(crypted_string,n,decryption_key,false);

	parent.location = decrypted_string;

}



function decrypt_and_echo(crypted_string,n,decryption_key) {

	if(!n || !decryption_key) { n = 0; decryption_key = 0; }

	if(!crypted_string) crypted_string = 0;



	var decrypted_string = decrypt_string(crypted_string,n,decryption_key,true);

	document.write(decrypted_string);

	return true;

}



// Finds base^exponent % y for large values of (base^exponent)

function exponentialModulo(base,exponent,y) {

	if (y % 2 == 0) {

		answer = 1;

		for(var i = 1; i <= y/2; i++) {

			temp = (base*base) % exponent;

			answer = (temp*answer) % exponent;

		}

	} else {

		answer = base;

		for(var i = 1; i <= y/2; i++) {

			temp = (base*base) % exponent;

			answer = (temp*answer) % exponent;

		}

	}

	return answer;

}

// -->