//Functions used in the SupportLink website pages
//comment to test with - Scott

// Returns true if str looks like an email address
function isEmail(str) {
  // are regular expressions supported?
  var supported = 0;

  if (window.RegExp) {
	var tempStr = "a";
	var tempReg = new RegExp(tempStr);
	if (tempReg.test(tempStr)) supported = 1;
  }
//alert("checking: " + str + " supports regexp: " + supported);
  if (!supported) 
	return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);

  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}

//Checks that the Email page fields are filled out.
function checkEmailFields(thisForm) {
	var validTo = false;
	var validFrom = false;
	var message = "";
	if (! isEmail(thisForm.to.value)) {
		message += "You must specify a valid To address\n";
	}
	if (! isEmail(thisForm.from.value)) {
		message += "You must specify a valid From address\n";
	}
	if (message != "") {
		alert(message);
		return false;
	}
	return true;
}

var arrProdFacets;

// Sorts the arrProd array and the arrProdKeys alphabetically based 
// on the value in the arrProd array.  Used for ajax
function sortProducts(){
	var i;
	//Temporary Array to hold a Product object of {ProductName, ProductRefKey, ProductFacet}
	var arrData = new Array();
	//Build the arrData array as an array of Products
	for(i=0; i<arrProd.length; i++){
		if(arrProdFacets != null){
			arrData[i] = {ProductName:arrProd[i], ProductRefKey:arrProdKeys[i], ProductFacet:arrProdFacets[i]};
		}
		else{
			arrData[i] = {ProductName:arrProd[i], ProductRefKey:arrProdKeys[i]}
		}
	}
	//Call javascript internal function sort with the compareFunction or sortByProductName
	arrData.sort(sortByProductName);
	//Pull sorted data arrData back into arrProd and arrProdKeys
	for(i=0; i<arrData.length; i++){
		arrProd[i] = arrData[i].ProductName;
		arrProdKeys[i] = arrData[i].ProductRefKey;
		if(arrProdFacets != null){
			arrProdFacets[i] = arrData[i].ProductFacet;
		}
	}

}

//Compare Function for sorting an array of Products by ProductName Alphabetically.  Related to sortProducts
function sortByProductName(a, b) {
	var x = a.ProductName.toLowerCase();
	var y = b.ProductName.toLowerCase();
	//If Product a.ProductName is < b.ProductName return -1 (i.e. Toad < Lecco so return -1)
	//If Product a.ProductName is > b.ProductName return 1 (i.e. Lecco > Toad return 1)
	//Else they are equal so return 0
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}


function emailpopup()
{
	myWindow = window.open("/SUPPORT/index?page=mailpage&pmv=true&pageid=" + escape(document.location), "email_friend", "width=600,height=300");
}

//Used by email link on every page
function emailpopup1()
{
	myWindow = window.open("/SUPPORT/index?page=email&pmv=y&emailBody=" + escape(document.location), "email_friend", "width=580,height=280");
}

