
	// function for active state
	function imgOn(imgName, imgSrc) {
		if (!imgSrc) imgSrc = imgName;
		if (document.images) document[imgName].src = eval(imgSrc + "1.src");
	}

	// function for default state
	function imgOff(imgName, imgSrc) {
		if (!imgSrc) imgSrc = imgName;		
		if (document.images) document[imgName].src = eval(imgSrc + "0.src");
	}

	// function for rolltext
	function rolltextimage(imgsrc) {
		if (document.images) document['rolltext'].src = eval(imgsrc + "2.src");
	}

	// popup zsample info
	function zSample(type){
		pophelp=window.open(globalConstants.PANEL_POPUP,'','menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=1,copyhistory=no,width=640,height=550,top=5,left=5');
		if (type==1) {
			imgOff('rollsample');
			rolltextimage('rollsample');
		}
		
		return false;
	}
	function zoompanel() {
		pophelp=window.open(globalConstants.PANEL_POPUP,'','menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=1,copyhistory=no,width=640,height=550,top=5,left=5');	
	}
	// logout
	function goLogout(){
		if (confirm("Are you sure you would like to logout?")) top.location=globalConstants.MEMBER_LOGOUT;
	}
	
	// rightnow
	function rightnow(specificArticle){
		var article = globalConstants.RIGHTNOW;
		if (specificArticle) article = specificArticle;
		
		helpwindow=window.open(article,'','menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=1,copyhistory=no,width=600,height=630');
		return false;
	}
	
	// return nicely formatted date
	function niceDate(offset) {
		var d = new Date();
		with (d) setDate(getDate()+offset);
		
		var monthname = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
		
		var dateString = "";
		dateString += monthname[d.getMonth()] + " ";
		dateString += d.getDate() + ", ";
		dateString += d.getFullYear();
		
		return dateString;
	}
	
	// mouseover highlight
	function doSelect( row ){
		row.bgColor = "#FFFFCC";
	}
	
	function doDeselect( row ){
		row.bgColor = "#FFFFFF";
	}
	
	// open currency converter
	function currency(){
		window.open(globalConstants.CURRENCY_CONVERTER,'','status=yes,scrollbars=yes,resizable=yes,copyhistory=no,width=660,height=400');
		return false;
	}

	//Email Validator.
	function EmailSyntaxValidator(str)
		{
		/*
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		
		if (str.indexOf(at)==-1){
		return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
			return false
		}

		if (str.indexOf(at,(lat+1))!=-1){
			return false
		}

		if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
			return false
		}

		if (str.indexOf(dot,(lat+2))==-1){
			return false
		}
			
		if (str.indexOf(" ")!=-1){
			return false
		}

 		return true					
 		*/
 		var account=false;
		var domain=false;
		var extension = false;
		var inp = str;
		var isValid = false;
		inp = reverseText(inp)
		if (inp.indexOf("@") > 0 && inp.indexOf(".") > 0)	
		{
			account = valEAccount(reverseText(inp.substring(inp.indexOf("@") +1 , inp.length)));
			domain  = DomainValidate(reverseText(inp.substring(0, inp.indexOf("@"))));
			extension = ExtensionValidate(reverseText(inp.substring(0, inp.indexOf("@"))));
		}

		if (account == true && domain == true && extension == true)	
			isValid = true;
		else
			isValid = false;
			
		return isValid;	
	}
	
	/*
	'Will reverse the text.
    'Author : Sudhakar & Sunil
    'Date : 08/06/2004
	*/	
	function reverseText(sStr)
	 {
      text = "";
      str = sStr;
      i = 0;
      while (i <= (str.length - 1)) {
         text = str.substring(i, i+1) + text;
         i++;
      }
      return text;
   }
   
   function ascii_value (c)
	{
		c = c.charAt (0);
		var i=-1;
		if(c!="")
  		for (i = 0; i < 256; ++ i)
		{
			var h = i.toString (16);
			if (h.length == 1)
				h = "0" + h;
			h = "%" + h;
			h = unescape (h);
			if (h == c)
				break;
		}
		return i;
	}
//This function is used to check domain part of an Email.
function DomainValidate(pVal)
{
	var inp = pVal;
	var isValid = true;
	if (inp != "")
	{

	if(inp.indexOf(".") > 0)
         { 
	  var col_array=inp.split(".");
	  var part_num=0;
	  var result =""; 

	 while (part_num < col_array.length-1)
	 {
	  
 	  if (col_array[part_num].length > 0 && valChar(pVal, "-") == true)
 	   {
 	    // "-" should not be the first or last character.
	   for (i = 0; i < col_array[part_num].length; ++ i)
	    {
	    //checking for the valid characters of domain.
		result = ascii_value (col_array[part_num].charAt(i));
		if (!((result >= 65 && result <=91) || (result >= 97 && result <= 122) || (result >= 48 && result <= 57) || (result == 45)))
		  {
			isValid= false;
			part_num = col_array.length;
			break;
		  }		
	    }
	   }else{
		  isValid= false;
		  part_num=col_array.length; 		  
		}	
	    part_num+=1;
	 }
	}
	else
	isValid = false;	
	}	
	return isValid;
}

//This function is used to check extension part of an Email.
function ExtensionValidate(pVal)
{
	var inp = pVal;
	var isValid = true;
	
	if (inp != "")
	{
	if(inp.indexOf(".") > 0)
         { 
	  var col_array=inp.split(".");
	  var part_num=col_array.length -1;
	  var result =""; 
	  //Extension must exceed 6 characters.
	  if (col_array[part_num].length < 7 && col_array[part_num].length > 0)
	   {	
	   for (i = 0; i < col_array[part_num].length; ++ i)
	    {
		//here we are checking the valid characters of extension.
		result = ascii_value (col_array[part_num].charAt(i));
		if (!((result >= 65 && result <= 91) || (result >= 97 && result <= 122)))
		  {
			isValid= false;
			part_num = col_array.length;
			break;
		  }		
		
	    }
	  }
	 else
	  {
	    isValid = false;	
	  }	
	}
	else
        {
	 isValid = false;	
        }
       }
	return isValid;

}

//This function is used to check account part of an Email.
function valEAccount(pVal)
{
	var isValid = true;
	//"." should not be the first or last character of the account.
    isValid = valChar(pVal, ".");    	
   
    if (isValid != false)
		isValid = valChar(pVal, "_");    	
	if (isValid != false)	
		isValid = valChar(pVal, "'");    	
   
    if (isValid == true)
    {
 		for (i = 0; i < pVal.length; ++ i)
			{
			// checking for the valid account charaters.
			result = ascii_value (pVal.charAt(i));
			if( result <= 32 || result >= 127 ) // DC 09/08 any displayable 7-bit ASCII character is valid (RFC 822)
//			if (!((result >= 65 && result <=91) || (result >= 97 && result <= 122) || (result >= 48 && result <= 57) || (result == 46) || (result == 95) || (result == 39))) // DC 09/08 this range (P007) is too narrow
			{
			return false;
			}		
		}
	}else
		return false	
	return true;
}

//Vaidate character position

function valChar(actStr, findStr)
{
	var isValid = true;
	if((actStr.indexOf(findStr) == 0) || (actStr.indexOf(findStr) == actStr.length-1))
        	isValid = false;
	if((reverseText(actStr).indexOf(findStr) == 0) || (reverseText(actStr).indexOf(findStr) == actStr.length-1))
	        isValid = false;
    if(actStr.indexOf(findStr+findStr) >= 0)
        	isValid = false;
    return isValid;    	
}

function sell() {
	if( navigator.appName == "Netscape" || navigator.userAgent.toLowerCase().indexOf("mac") > -1 ) {
		top.location = "/buy/index.zgi";
		
		return;
	}
	
	sellPage = globalConstants.MARKETING_SITE + "productcomparison.htm?upgrade=" + top.name;

	win = window.open(sellPage,'','menubar=no,toolbar=no,location=yes,directories=no,status=yes,scrollbars=yes,resizable=1,copyhistory=no,width=800,height=600,top=5,left=5');
	win.opener = top;
}