   // API for email component
   //@author kcowan@cytopia.cc
   //***********************************
   
   var EMAIL_PAGE_DIV         = "emailDiv";
   var EMAIL_DOC_DIV          = "emailDocDiv";

   var TO_EMAIL_TARGET_KEY    = "toEmail";
   var FROM_EMAIL_TARGET_KEY  = "fromEmail";
   var SUBJECT_TARGET_KEY     = "subject";
   var URL_TARGET_KEY         = "theUrl";

   var EMAIL_PAGE_URL         = "../email/EmailPage.cfm";
   var EMAIL_DOC_URL          = "../email/EmailAttachment.cfm";


   
   function queueEmailPage(){
      document.getElementById(EMAIL_PAGE_DIV).style.visibility = "visible";
	  document.getElementById(EMAIL_PAGE_DIV).style.display = "block";
   }

   function queueEmailDoc(){
      document.getElementById(EMAIL_DOC_DIV).style.visibility = "visible";
   }

   function doEmailPage(){
      var toname = document.getElementById(TO_EMAIL_TARGET_KEY).value;
	  var fromname = document.getElementById(FROM_EMAIL_TARGET_KEY).value;
	  if(!isValidEmail(toname)){
		  alert("The Email address: \""+toname+"\" is not a valid email address.");
		  return;
	  }

	  if(!isValidEmail(fromname)){
		  alert("The Email address: \""+fromname+"\" is not a valid email address.");
		  return;
	  }

      var theURL = new String(escape(location.href));
      window.location = EMAIL_PAGE_URL+"?"+TO_EMAIL_TARGET_KEY+"="+toname+"&"+FROM_EMAIL_TARGET_KEY+"="+fromname+"&"+SUBJECT_TARGET_KEY+"="+escape(document.title)+"&"+URL_TARGET_KEY+"="+theURL;
   }

   function doEmailDoc(){
      var toname = document.getElementById(TO_EMAIL_TARGET_KEY).value;
      var theURL = new String(escape(location.href));
      window.location = EMAIL_DOC_URL+"?"+TO_EMAIL_TARGET_KEY+"="+toname;
   }

   function setDetailDesktop(){
     try{
     document.getElementById(EMAIL_PAGE_DIV).style.visibility = "hidden";
     document.getElementById(EMAIL_DOC_DIV).style.visibility = "hidden";
	 }catch(anErr){}
   }

//****************************************************************************
//  EMAIL VALIDATION
//****************************************************************************
function isValidEmail(str) {

	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
    if (filter.test(str)){
         return true;
	  } else{
         //alert("Please input a valid email address!")
         return false;
	  }
}



  //***********************************************************************
  // Rating API
  //***********************************************************************

   isMousing                = false;
   CURRENT_RANK             = 0;
   MAX_RANK                 = 5;
   TIMEOUT                  = 750;
   CLEAR_RATING_METHOD      = "clearRanks()";
   IMAGE_KEY                = "rateimg_";
   _OFFSTAR                 = "../images/offstar.gif";
   _ONSTAR                  = "../images/onstar.gif";
   IFRAME_TARGET            = "ratingIFrame";
   IFRAME_TARGET_URL        = "../templates/rate_item.cfm";
   TABLE_NAME               = "foo";// name of the relative table


   function doRatingMouseover(ele, rank){
      isMousing =  false;
      clearRanks();
      isMousing =  true;
	  document.getElementById("ratingInfo").innerHTML = "&nbsp;<font color='cccccc'>"+ele.alt+"</font>";
      ele.src = _ONSTAR;
      for(i=1; i<=rank; i++){
          document.getElementById(IMAGE_KEY+i).src = _ONSTAR;
      }
   }

   function doRatingMouseout(ele, rank){

      isMousing = false;
	  document.getElementById("ratingInfo").innerHTML = "";
      setTimeout(CLEAR_RATING_METHOD, TIMEOUT);
   }

   function clearRanks(){
	 try{
     if(isMousing){ return; }
      for(i=1; i<=MAX_RANK; i++){
            if(CURRENT_RANK > 0){
	         if(i<=CURRENT_RANK){
		     document.getElementById(IMAGE_KEY+i).src = _ONSTAR;
		  } else {
                     document.getElementById(IMAGE_KEY+i).src = _OFFSTAR;
		  }
	     } else {
                 document.getElementById(IMAGE_KEY+i).src = _OFFSTAR;
	     }
     }

	 }catch(anErr){}

	 return;
   }

   function doRateItem(id, level, imgKey, tableName){
     //alert("RATE: "+id+" level: "+level);
	 if(USERID){
     CURRENT_RANK = level;
     isMousing = false;
     setTimeout(CLEAR_RATING_METHOD, TIMEOUT);
     rateEle = document.getElementById(IFRAME_TARGET);
     rateEle.src = IFRAME_TARGET_URL+"?id="+id+"&rating="+level+"&section="+tableName;
	 } else {
           alert("You must be a member to rate items.");
	 }
   }