var IE = document.all;
var winPop = null;
var winPopKey = null;
var itemIndex = null;

function showDiv(divName) 
{
  //alert('showDiv...divName=' + divName);              //JWC999
  if (document.getElementById(divName).style.display == 'none')
  {
    document.getElementById(divName).style.display = "";
  }
  else
  {
    document.getElementById(divName).style.display = 'none';
  }
}

function redirect(request, screen, id) {
  var redirectUrl
  redirectUrl = "default.asp?"
  if (request.length > 0)
  {
    redirectUrl += "req=" + request + "/"
  }
  if (screen.length > 0)
  {
    redirectUrl += screen + "/" + id;
  }

  if (redirectUrl.length > 0)
    window.top.location.href = redirectUrl;

  return false;
}

function validateCount(el, formName, fieldName, min, max)
{
  //alert('validateCount...formName=' + formName + '  fieldName=' + fieldName + '  min=' + min + '  max=' + max);   //JWC999
  if (el.checked == true)
  {
    var counter = 0;
    for (var idx=0; idx < document.forms[formName].elements[fieldName].length; idx++)
    {
      if (document.forms[formName].elements[fieldName][idx].checked == true)
      {
        counter += 1;
      }
    }
    if (counter > max)
    {
      alert('You are limited to ' + max + ' option(s).');
      el.checked = false;
    }
  }
  return true;
}

function validateEmail(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;				
}

function areYouSure(extmsg) 
{
  extmsg = (!extmsg) ? '': ' ' + extmsg + ' ';
  return confirm('Are you sure' + extmsg + '?');
}

function popChildWindow(popname, url, w, h, options) 
{
  //alert('popChildWindow....url=' + url);      //JWC999
  if (options.length == 0)
    winPop = window.open(url, popname);
  else
    winPop = window.open(url, popname, popWindowOptions(w, h, options));
  winPop.focus();
  return false;
}

function popWindowOptions(w, h, options) 
{
  var winTop = (IE)?window.screenTop:window.screenY;
  var winLeft = (IE)?window.screenLeft:window.screenX;
  var width = (w)?w:360;
  var height = (h)?h:360;
  return 'height=' + height + ',width=' + width + ',top=' + parseInt(winTop + 25) + ',left=' + parseInt(winLeft + 75) + options;      
}

function popDistributionListWindow(action, message) 
{
  //alert("popDistributionListWindow");         //JWC999
  winPopKey = action;
  var url = 'templates/distributionList.asp?action=' + action + '&message=' + message;
  popChildWindow('popDistributionListLookup', url, 500, 300, ",resizable=yes,scrollbars=yes");
}

function DistributionListSelect(id, name) 
{
  var action = winPopKey;
  var submit = false;
  
  //alert('DistributionListSelect...action=' + action);        //JWC999
  if (action == 'add')
  {
    document.forms[formName].elements['FormAction'].value = action;
    document.forms[formName].elements['ParentDistributionListId'].value = id;
    document.forms[formName].elements['DistributionListName'].value = name;
    submit = true;
  }

  winPopKey = null;
  winPop.close();

  if (submit == true)
  {
    document.forms[formName].submit();
  }
}

function popPrintOrganizationList(formName, userid, field, action) 
{
  //alert('popPrintOrganizationList...userid=' + userid + '  field=' + field + '  action=' + action);
  var width = 600;
  var height = 400;
  var bgcolor = "White";
  var url = action;
  var orgIds = '';
  var found = false;

  for (var i=0; i<document.forms[formName].elements[field].length; i++)
  {
    found = true;
    if (document.forms[formName].elements[field](i).checked == true)
    {
      if (orgIds != '')
      {
        orgIds += ',';
      }
      orgIds += document.forms[formName].elements[field](i).id;
    }
  }
  if (found == false)
  {
    if (document.forms[formName].elements[field].checked == true)
    {
      orgIds = document.forms[formName].elements[field].id;
    }
  }
    
  //alert('popPrintOrganizationList...orgIds=' + orgIds);
  //alert('popPrintOrganizationList...url=' + url);
  if (url.indexOf('?') == -1)
    url = url + '?'
  else
    url = url + '&'
  var ewin = window.open(url + "ProcessPrint=true&Print/Category=orglist&Print/Id=" + userid + "&Print/OrgIds=" + orgIds, "print", 'SCROLLBARS=1,RESIZABLE=1,MENUBAR=1,TOOLBAR=1,WIDTH=' + width + ',HEIGHT=' + height);
}

function checkAll(name, value)
{
  var retval = false;
  for (var i=0; i<document.forms[formName].elements.length; i++) 
  {
    if ((document.forms[formName].elements[i].name == name) && (document.forms[formName].elements[i].checked != value))
    {
      document.forms[formName].elements[i].checked = value;
    }
  }
  return true;
}

function mailTo(el, formName, field, subject)
{
  //alert('mailTo...el.name=' + el.name + '  field=' + field);
  var retval = false;
  var orgIds = '';
  var found = false;
  if ((subject == '') || (subject == null))
  {
    subject = 'Referral from PPCommunity';
  }
  
  //alert('mailTo...formName=' + formName);
  //alert('mailTo...length=' + document.forms['formName'].elements[field].length < 0);
  for (var i=0; i<document.forms[formName].elements[field].length; i++)
  {
    found = true;
    if (document.forms[formName].elements[field](i).checked == true)
    {
      if (orgIds.indexOf(document.forms[formName].elements[field](i).value) == -1)
      {
        if (orgIds != '')
        {
          //orgIds += ';';
          orgIds += ',';
        }
        orgIds += document.forms[formName].elements[field](i).value;
      }
    }
  }
  if (found == false)
  {
    if (document.forms[formName].elements[field].type == 'checkbox')
    {
      if (document.forms[formName].elements[field].checked == true)
      {
        orgIds = document.forms[formName].elements[field].value;
      }
    }
    else
    {
      orgIds = document.forms[formName].elements[field].value;
    }
  }
  //alert('mailTo...orgIds=' + orgIds);
  if (orgIds != '')
  {
    //el.href = 'mailto:' + emails;
    //el.href = 'mailto:?bcc=' + emails + '&subject=' + subject;
    //el.href = '/contactPartners.asp?userIds=' + userIds + '&subject=' + subject;
    el.href = '/default.asp?req=printrequest/jobdesc/&org=' + orgIds;
    el.target = '_blank';
    retval = true;
  }
  else
  {
    alert('You must check one or more companies to send the email to.');
  }
  return retval;
}

function initializeOther(el, form, field, section)
{
  //alert('initializeOther...field=' + field);   //JWC999
  var fieldName = section + '/' + field;
  if (el.checked == true)
  {
    document.forms[form].elements[fieldName].focus();
  }
  else
  {
    document.forms[form].elements[fieldName].value = '';
  }
  return true;
}

function resortResults(formName, fieldName, value)
{
  if (getFormFieldValue(formName, fieldName) == value)
  {
    if (getFormFieldValue(formName, 'OrderBy') == 'desc')
      setFormField(formName, 'OrderBy', 'asc');
    else
      setFormField(formName, 'OrderBy', 'desc');
  }
  else
  {
    setFormField(formName, fieldName, value);
  }
  SubmitForm(formName);
}

function getFormFieldValue(formName, name) 
{
  //alert('getFormFieldValue...name=' + name);       //JWC999
  var retval;
  var els = document.forms[formName].elements;
  for (var j=0; j<els.length; j++) 
  {
    if (els[j].name == name)
    {
      retval = els[j].value;
      break;
    }
  }
  return retval;
}
function setFormField(formName, name, value) 
{
  //alert('setFormField...name=' + name + '  value=' + value);       //JWC999
  var els = document.forms[formName].elements;
  //alert('setFormField...length=' + els.length);                   //JWC999
  for (var j=0; j<els.length; j++) 
  {
    if (els[j].name == name)
    {
      els[j].value = value.toString();
      break;
    }
  }
  return false;
}

function SubmitForm(formName)
{
  document.forms[formName].submit();
}

function flagUpdate(formName, index, field)
{
  //alert('flagUpdate...formName=' + formName + '  index=' + index + '  field=' + field);         //JWC999
  var value = ' ' + document.forms[formName].elements[field].value + ' ';
  var newString = ' ' + index;
  if (value.indexOf(newString + ' ') == -1)
  {
    document.forms[formName].elements[field].value += newString;
  }
  //alert('flagUpdate...value=' + document.forms[formName].elements[field].value);         //JWC999
  return true;
}

function validatePrintRequestFields(formName, action, uplGuid)
{
  var submit = false;
  var section = document.forms[formName].elements['CurrentSection'].value;
  var key = '';
  //alert('validateFields...action=' + action + '  section=' + section);       //JWC999
  if (action == 'save')
  {
    submit = validateJobDescription(formName, key);
  }

  //alert('validateFields...submit=' + submit);       //JWC999
  if (submit == true)
  {
    document.forms[formName].action = '/upload_post.asp?UPL_GUID=' + uplGuid;
    document.forms[formName].elements['FormAction'].value = action;
    document.forms[formName].submit();
  }
}

function validateJobDescription(formName, key)
{
  //alert('validateJobDescription...formName=' + formName + '  key=' + key);       //JWC999
  var retval = false;
  
  if (document.forms[formName].elements[key + 'ContactFirstName'].value == '')
  {
    alert('A valid entry for "First Name" is required!');
    document.forms[formName].elements[key + 'ContactFirstName'].focus();
  }
  else if (document.forms[formName].elements[key + 'ContactLastName'].value == '')
  {
    alert('A valid entry for "Family Name" is required!');
    document.forms[formName].elements[key + 'ContactLastName'].focus();
  }
  else if (document.forms[formName].elements[key + 'ContactEmail'].value == '')
  {
    alert('A valid entry for "Email" is required!');
    document.forms[formName].elements[key + 'ContactEmail'].focus();
  }
  else if (!validateEmail(document.forms[formName].elements[key + 'ContactEmail'].value))
  {
    alert('A valid entry for "Email" is required!');
    document.forms[formName].elements[key + 'ContactEmail'].focus();
  }
  else if (document.forms[formName].elements[key + 'ContactCityTown'].value == '')
  {
    alert('A valid entry for "City/Town" is required!');
    document.forms[formName].elements[key + 'ContactCityTown'].focus();
  }
  else if ("<%=STATE_PROVINCE_REQUIRED_COUNTRY_IDS%>".indexOf(" " + document.forms[formName].elements[key + 'ContactCountryID'].value + " ") != -1 && document.forms[formName].elements[key + 'ContactSubRegionID'].value == '')
  {
    alert('A valid entry for "State/Province" is required!');
  }
  else if (document.forms[formName].elements[key + 'ContactZipPostalCode'].value == '')
  {
    alert('A valid entry for "Zip/PostalCode" is required!');
    document.forms[formName].elements[key + 'ContactZipPostalCode'].focus();
  }
  else if (document.forms[formName].elements[key + 'ContactCountryID'].value == '')
  {
    alert('A valid entry for "Country" is required!');
  }
  else if (document.forms[formName].elements[key + 'ContactPhone'].value == '')
  {
    alert('A valid entry for "Phone" is required!');
    document.forms[formName].elements[key + 'ContactPhone'].focus();
  }
  else if (document.forms[formName].elements[key + 'RequestName'].value == '')
  {
    alert('A valid entry for "Job Name" is required!');
    document.forms[formName].elements[key + 'RequestName'].focus();
  }
  else if (document.forms[formName].elements[key + 'RequestDesc'].value == '')
  {
    alert('A valid entry for "Job Purpose" is required!');
    document.forms[formName].elements[key + 'RequestDesc'].focus();
  }
  else
  {
    if ('<%=showShortForm%>' == '<%=false%>')
    {
      if (document.forms[formName].elements[key + 'CountryID'].value == '' && document.forms[formName].elements[key + 'SubRegionID'].value == '')
      {
        document.forms[formName].elements[key + 'CountryID'].value = document.forms[formName].elements[key + 'ContactCountryID'].value;
        document.forms[formName].elements[key + 'SubRegionID'].value = document.forms[formName].elements[key + 'ContactSubRegionID'].value;
      }
    }
    retval = true;
  }
    
  //alert('validateJobDescription...retval=' + retval);       //JWC999
  return retval;

}

function selectRegion(regionId)
{
  window.location.href = "/default.asp?req=public/region/" + regionId;
}

function formatSelections(action, field, fillField) 
{
  //alert('formatSelections...action=' + action + '  field=' + field + '  fillField=' + fillField);
  var fieldId = '';
  var orgIds = '';
  var found = false;

  for (var i=0; i<document.forms[formName].elements[field].length; i++)
  {
    found = true;
    if (document.forms[formName].elements[field](i).checked == true)
    {
      if (orgIds != '')
      {
        orgIds += ',';
      }
      fieldId = document.forms[formName].elements[field](i).id;
      orgIds += fieldId.substring(0,fieldId.indexOf(':'));
    }
  }
  if (found == false)
  {
    if (document.forms[formName].elements[field].checked == true)
    {
      fieldId = document.forms[formName].elements[field].id;
      orgIds = fieldId.substring(0,fieldId.indexOf(':'));
    }
  }
    
  //alert('formatSelections...orgIds=' + orgIds);
  if (orgIds == '')
  {
    alert('An organization for your print request to be emailed to must be selected!');           //JWC999
  }
  else
  {
    document.forms[formName].elements[fillField].value = orgIds;
    //validateFields(action);
    popRequestEmail('/default.asp?req=printrequest/sendemail/' + document.forms[formName].elements['CurrentPrintRequestID'].value + '&orgids=' + orgIds);
  }
}

function popXeroxRequestEmail()
{
  var url = '/default.asp?req=printrequest/sendemail/' + document.forms[formName].elements['CurrentPrintRequestID'].value + '&email=sendxerox'
  popRequestEmail(url);
}

function popRequestEmail(path) {
    //alert('popRequestEmail...path=' + path);      //JWC999
    var width = 750;
    var height = 750;
    var bgcolor = "White";
    var ewin = window.open(path, "email", 'WIDTH=' + width + ',HEIGHT=' + height + ',scrollbars=yes');
}

function checkToggleDiv(el, divName)
{
  //alert('toggleAttachmentDivs...type=' + type);
  if (el.checked)
  {
    toggleDiv(divName, true);
  }
  else
  {
    toggleDiv(divName, false);
  }
}

function toggleDiv(szDivID, iState) // 1 visible, 0 hidden
{
  //alert('toggleArticle...szDivID=' + szDivID + '   iState=' + iState);
  if(document.layers)	   //NN4+
  {
     document.layers[szDivID].display = iState ? "block" : "none";
  }
  else if (document.getElementById)	  //gecko(NN6) + IE 5+
  {
    var obj = document.getElementById(szDivID);
    //alert('toggleArticle...obj.style.visibility=' + obj.style.visibility);
    obj.style.display = iState ? "block" : "none";
    //alert('toggleArticle...obj.style.visibility=' + obj.style.visibility);
  }
  else if (document.all)	// IE 4
  {
    document.all[szDivID].style.display = iState ? "block" : "none";
  }
}

function setFocus(el, value, focusField)
{
  //alert('setFocus...value=' + value + '  el.value=' + el.value);
  if (el.value == value)
  {
    document.forms[formName].elements[focusField].focus();
  }
}

function submitSearch(formName, url, fieldName)
{
  if (document.forms[formName].elements[fieldName].value != '')
  {
    document.forms[formName].action = url + '&' + fieldName + '=' + document.forms[formName].elements[fieldName].value;
    document.forms[formName].submit();
  }
}
