/****************************************************************/
/* File Name:  commonFunctions.js                               */
/*             all common functions related to HV products      */
/* Company:    Group of Gold Line                               */
/* Scriptor:   Behzad Talebpour                                 */
/****************************************************************/

/* to create and return award year drop down list.
/* this function uses the created button by createAwardButton function.
/*/
function addAwardYear(ind){
   var list ='<select id="Award'+ind+'" style="width:'+
      (FLD_WIDTH-141)+';background-color:' + BG_COLOR +
      '" onchange="onSelectAwardYear(this)" >' +
      '<option value="">Year</option>';
   var thisYear = new Date().getFullYear();
   for (var i=thisYear; i>=1990 ; i--)
      list += '<option value="'+i+'">'+i+'</option>';
   list += '</select> ';
   return list;
}

/* to create and return an input field for award text.
/*/
function addAwardText(ind){
   var inpFld = "";
   var aVal = getElementValue("Award"+ind+"Constant");
   var aType = aVal.substr(aVal.lastIndexOf("\\")+1).substr(0,1);
   if (aType.toUpperCase() != "D")
      inpFld ='<input id="Award'+ind+'" type="text" style="width:'+
         (FLD_WIDTH-153)+';background-color:' + BG_COLOR +
         '" onchange="changeAwardText(this)"' + 
         ' onfocus="this.select()" />';
   return inpFld;
}

/* to add Front and/or Back background buttons.
/*/
function addBGButtons(){
   if (PROJ_CODE == "CEN" || PROJ_CODE == "DIS" || PROJ_CODE == "ABI" || PROJ_CODE == "DOM" || PROJ_CODE == "MAC" || PROJ_CODE == "GRH")
       var frontBG = false;
   else
   	 var frontBG = true;

	var bgFtitle = "Front Background Image:";
	var bgBtitle = "Back Image:";
   if (getFieldElement("CompanyName"))
   {
      if (bgF == 1 && frontBG)
         addButtons("f", DA_BG, "BGFrontConstant", bgFtitle, "CompanyName", defFrontCat);
      if ((typeof backBG != 'undefined' && backBG != false) || typeof backBG == 'undefined')
        addButtons("b", DA_BG, "BGBackConstant",  bgBtitle, "CompanyName", defBackCat);
   }else{
      if (bgF == 1 && frontBG)
         addButtons2Virtual("f", DA_BG, "BGFrontConstant", bgFtitle, "virtualFld", defFrontCat);
    
      if ((typeof backBG != 'undefined' && backBG != false) || typeof backBG == 'undefined')
        addButtons2Virtual("b", DA_BG, "BGBackConstant", bgBtitle, "virtualFld", defBackCat);
   }
}

/* to create and insert a drop down list for contact titles.

      '<option value="Bur: ">Bureau</option>' +
      '<option value="Télé: ">Téléphone</option>' +
      '<option value="Cell: ">Cellulaire</option>' +
      '<option value="Dir: ">Directe</option>' +
      '<option value="Téléc: ">Télécopier</option>' +
      '<option value="Rés: ">Résidence</option>' +
      '<option value="Sans Frais: ">Sans Frais</option>' +

*/
function addContact(ind)
{
    var select = document.createElement('select');
   select.setAttribute('id','Field' + ind);
   select.setAttribute('name','Field' + ind);
   select.style.backgroundColor = BG_COLOR;
   select.onchange = new Function("onSelectContact(this);");
   select.options[0] = new Option("Title...", "");
   select.options[1] = new Option("Phone", "Phone: ");
   select.options[2] = new Option("Business", "Bus: ");
   select.options[3] = new Option("Cellular", "Cell: ");
   select.options[4] = new Option("Direct", "Direct: ");
   select.options[5] = new Option("Fax", "Fax: ");
   select.options[6] = new Option("Office", "Office: ");
   select.options[7] = new Option("Pager", "Pager: ");
   select.options[8] = new Option("Residence", "Res: ");
   select.options[9] = new Option("Telephone", "Tel: ");
   select.options[10] = new Option("Toll Free", "Toll Free: ");
     
   var o = getFieldElement("Field"+ind+"NConstant").parentNode;
   o.appendChild(select);
   o.insertBefore(select,o.firstChild);
 
   //getFieldElement("Field"+ind+"NConstant").parentNode.appendChild(select);   

}


function addContact2(ind){
   var list='<nobr><select id="Field'+ind+'" style="background-color:'+
      BG_COLOR+'" onchange="onSelectContact(this)" >' +
      '<option value="">Title...</option>' +
      '<option value="Phone: ">Phone</option>' +
      '<option value="Bus: ">Business</option>' +
      '<option value="Cell: ">Cellular</option>' +
      '<option value="Direct: ">Direct</option>' +
      '<option value="Fax: ">Fax</option>' +
      '<option value="Office: ">Office</option>' +
      '<option value="Pager: ">Pager</option>' +
      '<option value="Res: ">Residence</option>' +
      '<option value="Tel: ">Telephone</option>' +
      '<option value="Toll Free: ">Toll Free</option>' +
      '</select> ';
      getFieldElement("Field"+ind+"NConstant").parentNode.innerHTML=list+
         getFieldElement("Field"+ind+"NConstant").parentNode.innerHTML+
         "</nobr>";
}

function addDropDown(arrVal, arrDis, funcName, msg){
   var list ='<select id="" style="width:'+
      FLD_WIDTH+';background-color:' + BG_COLOR +
      '" onchange="'+funcName+'(this)" >' +
      '<option value="">'+msg+'</option>';
   for (var i=0; i<arrVal.length ; i++)
      list += '<option value="'+arrVal[i]+'">'+arrDis[i]+'</option>';
   list += '</select> ';
   return list;
}

/* to add common event handlers to the form filling fields.
/*/
function addEventHandlers(){
   /*var arrClrFields = ["BGFront", "BGBack", "Photo1"];
   //for (var i=1; i<=award; i++)
   //   arrClrFields.push("Award"+i);
      
   //for (var i=0; i<arrClrFields.length; i++){
   //   var fld = document.getElementById
   //      ("btnClr"+arrClrFields[i]+"Constant");
   //    if (fld)
   //       fld.onclick = 
   //          new Function ('clearImage("'+arrClrFields[i]+'Constant");');
   }*/
   for (var i=1; i<=contact; i++){
      var fld = document.getElementById("Field"+i);
      getFieldElement("Field"+i+"NConstant").onchange =
         new Function('changeContact("Field' +i+'");');
      getFieldElement("Field"+i+"NConstant").onfocus =
         function(){this.select();}
   }
   getFieldElement("EmailConstant").onfocus =
      function(){this.select();}
   getDivElement("CardType").onclick = 
      new Function("e", "changeCardType();");
   if (getFieldElement("CompanyURLConstant"))
      getFieldElement("CompanyURLConstant").onfocus =
         function(){this.select();}


   if (getFieldElement("CompanyName") != null)
	getFieldElement("CompanyName").onchange = refreshPage;
}

//due to a problem with Firefox, Layout Button cannot be added to Company Name
function addLayoutButton1(){
	var btnSel=createSelectButton('f',DA_LAYOUT,'LayoutConstant',"Card Layout...");
   if (getFieldElement("CompanyName") != null){
		changeAttribs("CompanyName");
		getDivElement("CompanyName").innerHTML = "<p>" + btnSel + "</p>" +
			getDivElement("CompanyName").innerHTML + "<p>&nbsp;</p>";
	}else{
      document.getElementById("virtualFld").innerHTML="<p>"+btnSel+"</p>";
	}
}

function addLayoutButton(){
   if ( getFieldElement("CompanyName") != null )
      changeAttribs("CompanyName");


	var btnSel=createSelectButton('f',DA_LAYOUT,'LayoutConstant',"Card Layout...");
   //document.getElementById("virtualFld").innerHTML = "<p>"+btnSel+"</p>";
   document.getElementById("virtualFld").innerHTML = btnSel;


}

/* to assign the entered award text to its actual field.
/*/
function changeAwardText(fldSel){
   getFieldElement(fldSel.id+"TextConstant").value = fldSel.value;
}

/* to perform required actions in case of Company Name change.
/*/
function changeCompanyName(){
   setLogo();
   refreshPage();
}

/* to assign appropriate title to contact fields.
/*/
function changeContact(dropFldName){
   var fldN = getFieldElement(dropFldName+"NConstant");
   var fldT = getFieldElement(dropFldName+"TConstant");
   if (fldT.value != "" && fldN.value == ""){
      fldT.value = "";
      document.getElementById(dropFldName).selectedIndex = 0;
   }else if (fldN.value != "" && fldT.value == ""){
      fldT.value = " ";
      document.getElementById(dropFldName).selectedIndex = 1;
   }
   else if(fldN.value.length > 0)
   {
    PFSF_SetControlValue(PFSF_Find('FIELD_' + FieldIDs[dropFldName+'NConstant']),fldN.value);    
   }

}

function changeContact1(dropFldName){
   if (getElementValue(dropFldName+"NConstant") == ""){
      getFieldElement(dropFldName+"TConstant").value = "";
      document.getElementById(dropFldName).selectedIndex = 0;
   }
}

/* to add the appropriate seq. number in front of contact titles in the form filling.
/*/
function changeContactTitle(fldName, fldTitle, seq, totContacts){
   var fld = getDivElement(fldName);
   var ind = fld.innerHTML.indexOf(fldTitle);
   fld.innerHTML = fld.innerHTML.substr(0,ind) +
      "Contact " + seq + " of " + totContacts + ":" +
      fld.innerHTML.substr(ind+fldTitle.length);
}

/* to change a field's title in the form filling.
/*/
function changeFieldTitle(currTitle, fldName, seq, noFld){
   var fld = getDivElement(fldName);
   var ind = fld.innerHTML.indexOf(">"+currTitle+":");
   fld.innerHTML=fld.innerHTML.substr(0,ind-1)+
      ">"+currTitle+" "+seq+" of "+noFld+":"+fld.innerHTML.substr(ind+
      currTitle.length+2);
}

/* to perform required common actions after document is loaded.
/*/
function commonInitActions(){
	//hideMyProfile();
	hideFinishStep();
   if (arrFields.length == 0)
      arrFields = ["AddressLine", "City", "CompanyURL", "Email",
         "PostalCode", "Province", "FirstName", "LastName", "Title"]; 

   for (i=0; i<arrFields.length; i++)
      arrFields[i] += "Constant";

   displayProductTitle();
   hideAllFields();
    
	//if (PROJ_CODE == "RLP" || PROJ_CODE == "VER")
		addLayoutButton();
	//else
		//addLayoutButton1();
	
   getFieldElement("LayoutConstant").onchange = "onchangeLayout();";
   if (getFieldElement("LayoutConstant").value == ""){
      popupWindow('f', DA_LAYOUT, 'LayoutConstant');
      if (PFSF_getFieldValue("CardType") == "")
         PFSF_GetFieldElementByName("CardType").checked = true;
	   //if (getFieldElement("CompanyName") != null)
	   //   disableFld("CompanyName");
   }else{
      createPage();
      if (typeof addEventHandlers1 != 'undefined')
        addEventHandlers1();
      else
        addEventHandlers();      
   }
}

/* to perform required actions to process all contact fields.
/*/
function contactProcess(noOfContacts){
   var totContacts;
   var divCompany = getDivElement("CompanyURLConstant");
   if (divCompany && (divCompany.style.display == SHOW || divCompany.style.display == "")){
      var totContacts = parseInt(noOfContacts) + 2;   //consider Email & Website as contacts
      changeContactTitle("EmailConstant", "Email Address:", totContacts-1, totContacts);
      changeContactTitle("CompanyURLConstant", "Website:", totContacts, totContacts);
      changeBackground("CompanyURLConstant");
   }else{
      var totContacts = parseInt(noOfContacts) + 1;   //consider Email as contact
      changeContactTitle("EmailConstant", "Email Address:", totContacts, totContacts);
   }

   for (i=1; i<=noOfContacts; i++){        
      var fldNConstant = "Field"+i+"NConstant";
      var fldTConstant = "Field"+i+"TConstant";

      showHide(fldNConstant, SHOW);
      changeBackground(fldNConstant);
      getFieldElement(fldNConstant).style.width = FLD_WIDTH - 100;
      changeContactTitle(fldNConstant, "Contact:", i, totContacts);
      addContact(i);
         
      var fldNVal = getElementValue(fldNConstant);
      var fldContact=document.getElementById("Field"+i);
      var fldT = getFieldElement(fldTConstant);
      if (fldNVal != ""){
         for(var j=0; j<fldContact.options.length; j++){
            if (fldContact.options[j].value == fldT.value){
               fldContact.selectedIndex = j;
               break;
            }
         }
      }
   }
}

/* to create and return airmiles/balloon button, if it exists.
/*/
function createAirmilesButton(){
   //var person = setPersonValue();
   //var fldName = "Airmiles"+person+"Constant";
   var fldName = "AirmilesConstant";
   if (PROJ_CODE == "C21")
      var pText='Airmiles:';
   else
      var pText='Balloon:';
   
   var btnSel = createSelectButton("f", DA_AIRMILES, fldName, pText);
   var btnClr = createClearButton(fldName);
   return '<span style="height:45px">'+btnSel+btnClr+'</span>';
}

/* to create and return airmiles/balloon button, if it exists.
/*/
function createAirmilesButton1(){
   //var person = setPersonValue();
   //var fldName = "Airmiles"+person+"Constant";
   var fldName = "AirmilesConstant";
   if (PROJ_CODE == "C21")
      var pText='<p>Airmiles:</p>';
   else
      var pText='<p>Balloon:</p>';
   
   var btnSel = createSelectButton("f", DA_AIRMILES, fldName, "Select...");
   var btnClr = createClearButton(fldName);
   return pText+'<p style="height:30px">'+btnSel+btnClr+'</p>';
}

/* to create and return award year (drop down or text only).
/* addAwardButton function uses this button to fill its values.
/* new changes are along with changes in createSelectButton().
/*/
function createAwardButton(ind){
   var person = setPersonValue();
   var fldName = "Award"+person+ind+"Constant";
   var btnClr = createClearButton(fldName);
   var dropYr = "";
   if (btnClr != "")
      switch (PROJ_CODE){
         case "C21":
         case "CWB":
         case "JAS":
         case "PRU":
         case "SBK":
         case "SUT":
            dropYr = addAwardText(person+ind);
            break;
         case "RLP":
         case "HBC":
         case "RBC":
            dropYr = addAwardYear(person+ind);
            break;
      }

   var pText = 'Award';
   if (award > 1)
      pText += " "+ind+" of "+award;
   pText += ":";
   if (dropYr){
      //var nbsp = ":";
      var nbsp = "";
      for (var k=0; k<9; k++)
         nbsp += "&nbsp;";
      pText += nbsp + "Award Year:";
   }
   var btnSel = createSelectButton("f", DA_AWARD, fldName, pText);
   return '<span style="height:45px">'+btnSel+btnClr+dropYr+'</span>';
   //return '<p style="height:30px">'+btnSel+btnClr+dropYr+'</p>';
}

/* to create and return award year (drop down or text only).
/* addAwardButton function uses this button to fill its values.
/*/
function createAwardButton1(ind){
   var person = setPersonValue();
   var fldName = "Award"+person+ind+"Constant";
   var btnSel = createSelectButton("f", DA_AWARD, fldName, "Select...");
   var btnClr = createClearButton(fldName);
   var dropYr = "";
   if (btnClr != "")
      switch (PROJ_CODE){
         case "C21":
         case "CWB":
         case "JAS":
         case "PRU":
         case "SBK":
         case "SUT":
            dropYr = addAwardText(person+ind);
            break;
         case "RLP":
         case "HBC":
         case "RBC":
            dropYr = addAwardYear(person+ind);
            break;
      }

   var pText = '<p>Award';
   if (award > 1)
      pText += " "+ind+" of "+award;
   if (dropYr){
      var nbsp = ":";
      for (var k=0; k<8; k++)
         nbsp += "&nbsp;";
      pText += nbsp + "Award Year:</p>";
   }else
      pText += ":</p>";
   return pText+'<p style="height:30px">'+btnSel+btnClr+dropYr+'</p>';
}

/* to display the selected product's name at the top of the form filling.
/*/
function displayProductTitle(){
   var obj = document.getElementById("btnPreview");
   if (obj != null)
   {
   while (obj.tagName.toUpperCase() != "P"){
      obj = obj.parentNode;
   }
   obj.innerHTML = '<span class="myP"><nobr><b>'+PROJ_TITLE+': ' + 
      prdctTitle + '</b></nobr></span><br />' + obj.innerHTML;
   }
}

/* to create or process common fields of all projects.
/* these actions are required to be done after a layout is selected.
/*/
function fieldsProcess(){
   parseLayoutName();
   switch (PROJ_CODE){
      case "EXT":
      case "MAC":
      case "MDR":
      case "PKR":
      //case "PRU":
      case "RLP":
         setLogo();
   }
   addBGButtons();
   if (photo == 1){
      if (photoProcess1)
        photoProcess1();
      else
        photoProcess();
      getFieldElement("ProductType").value = prdctType + "P";
   }else
      getFieldElement("ProductType").value = prdctType;

   for (i=0; i<arrFields.length; i++){
      showFld(arrFields[i]);
      changeAttribs(arrFields[i]);
      if (getFieldElement(arrFields[i]).tagName != "SELECT")
      getFieldElement(arrFields[i]).onfocus = function(){this.select();}
   }
   showFld("CardType");
   
   if (typeof contactProcess1 != 'undefined')
        contactProcess1(contact);
   else
        contactProcess(contact);
}

/* to replace null with a space in the award's year fields.
/* Users: Sutton
/*/
function fixAwardYears(){
	for (var i=1; i<=award; i++){
		var fld = getFieldElement("Award"+i+"TextConstant");
		if (fld.value == "")
			fld.value = " ";
	}
}

/* to replace null with a space in the contact's title fields.
/*/
function fixContacts(){
   for (var i=1; i<=contact; i++)
      changeContact("Field"+i);
}

function fixContacts1(){
   for (var i=1; i<=contact; i++){
      fldN = getFieldElement("Field"+i+"NConstant");
      fldT = getFieldElement("Field"+i+"TConstant");
      if (fldT.value != "" && fldN.value == "")
         fldT.value = "";
      if (fldN.value != "" && fldT.value == "")
         fldT.value = " ";
   }
}

/* to hide all form filling's fields before a layout is selected.
/*/
function hideAllFields(){

    if (hideFields1)
    {
        hideFields1();
        return;
    }

   if (PROJ_CODE == "RAH")
      hideFld("OfficeLocation");

   hideFld("Photo1Constant");
   hideFld("CardType");
   //hiding this will cause "card Select Button" doesn't show up.
   for (i=1; i<=MAX_CONTACT; i++)
      hideFld("Field"+i+"NConstant");
   for (i=0; i<arrFields.length; i++)
      hideFld(arrFields[i]);
}

/* to hide Finish step from Form Filling step.
/*/
function hideFinishStep(){
    if (document.getElementById("id_finish") != null)
	    document.getElementById("id_finish").parentNode.style.display = HIDE;
}

/* to perform required actions in the case of layout change.
/*/
function onchangeLayout(){
   var person = setPersonValue();

   parseLayoutName();
   switch (PROJ_CODE){
      case "EXT":
      case "MAC":
      case "MDR":
      case "PKR":
      //case "PRU":
      case "RLP":
         setLogo();
   }

   for (var i=1; i<=award; i++){
      var fld = getFieldElement("Award"+person+i+"Constant");
      var fldVal = fld.value;
      var ind = fldVal.lastIndexOf(".");
      switch (PROJ_CODE){  // to clear awards on Layout change
         case "CWB":
         case "EXT":
         case "HBC":
         case "PRU":
         case "REX":
         case "SUT":
         case "WEI":
            if (fldVal.substr(ind-1,1) != awardGrp){
               fld.value = "";
               fldYear = document.getElementById("Award"+person+i);
               if (fldYear)
                  getFieldElement("Award"+person+i+"TextConstant").value = "";
            }
            break;
         default:
            if (fldVal != "")
               fld.value = fldVal.substr(0, ind-1)+awardGrp+fldVal.substr(ind);
      }
   }
}

/* to assign the selected award's year (from drop down) to its actual field.
/* this will be run when an award's year is selected.
/*/
function onSelectAwardYear(fldSel){
   getFieldElement(fldSel.id+"TextConstant").value = 
      fldSel.options[fldSel.selectedIndex].value;
}

/* to assign the selected contact's title to its actual field.
/* this is run when a contact's title is selected.
/*/
function onSelectContact(fldSel){
   if (fldSel.selectedIndex >0 )
      getFieldElement(fldSel.id+"TConstant").value = 
         fldSel.options[fldSel.selectedIndex].value;
   else
      getFieldElement(fldSel.id+"TConstant").value = "";
}

/* to parse the selected layout's name. Each char distinguishes a data or action.
/*/
function parseLayoutName(){
   var layoutVal = getElementValue("LayoutConstant");
   var loName = layoutVal.substring(layoutVal.lastIndexOf("\\")+1,
      layoutVal.lastIndexOf("."));
   var ind = loName.length;
   photo = loName.substr(ind-1,1);
   image = loName.substr(ind-4,3);
   logoClr = loName.substr(ind-5,1);
   awardGrp = loName.substr(ind-6,1);
   award = loName.substr(ind-7,1);
   contact = loName.substr(ind-8,1);
   bgF = loName.substr(ind-9,1);
}

/* to show photo field and add a clear button to it, if necessary.
/*/
function photoProcess(){
   var fldName = "Photo1Constant";
   showFld(fldName);
   changeImgAttribs(fldName);
   if (getElementValue(fldName) != "")
   {
      var photoNodes = getDivElement(fldName).childNodes;
      photoNodes[5].innerHTML += createClearButton(fldName);
   }
}

/* to create the logo's path and file name based on the selected company name.
/* this function is used for Royal LePage only.
/*/
function setLogo(){
   
   var lColor;
   if (PROJ_CODE == "EXT"){
      if (logoClr < 2)      //it's 0 or 1 and white design
         lColor = "B";
      else                  //it's 2 or 3 and black design
         lColor = "W"
   }else if (PROJ_CODE == "MAC"){
      lColor = PFSF_getFieldValue("TaglineConstant");
	}
   else
      lColor = logoClr;
      
   var cn = getFieldElement("CompanyName");
   getFieldElement("LogoConstant").value = 
      getElementValue("DAPathConstant") + "logo\\" + cn.value +
      "_" + lColor + ".pdf";
      
   if (PROJ_CODE == "MDR"){
		var office = getFieldElement("OfficeName");
   	if (getElementValue("CompanyName") == "Corporate_Office")
   		office.value = "Macdonald Realty Ltd.";
   	else
   		office.value = "";
	}
}

/* to set currentPerson's value based on the product.
/*/
function setPersonValue(){
   var person = "";
   if (prdctType == "H2P")
      person = currPerson;
   return person;
}

/* to move awards upward in case one of them is removed from its field.
/* this makes sure that awards fields are shown properly and filled from top to bottom.
/*/
function shiftAwards(){
   var person = setPersonValue();
   for (var i=1; i<award; i++){    
      var fldI = getFieldElement("Award"+person+i+"Constant");
      if (fldI.value == ""){
         for (var j=i+1; j<=award; j++){
            var fldJ = getFieldElement("Award"+person+j+"Constant");
            if (fldJ.value != ""){
               swap(fldI, fldJ);
               swap(getFieldElement("Award"+person+i+"TextConstant"),
                  getFieldElement("Award"+person+j+"TextConstant"));
               break;
            }
         }
      }
   }
}

/* to sort awards based on thier name (alphabetically, ascending).
/*/
function sortAwards(){
   var person = setPersonValue();
   for (var i=1; i<award; i++){    
      var fldI = getFieldElement("Award"+person+i+"Constant");
      for (var j=i+1; j<=award; j++){
         var fldJ = getFieldElement("Award"+person+j+"Constant");
         if (fldI.value != "" && fldJ.value != "" && 
            fldI.value.toString() > fldJ.value.toString()){
            swap(fldI, fldJ);
            swap(getFieldElement("Award"+person+i+"TextConstant"),
               getFieldElement("Award"+person+j+"TextConstant"));
         }
      }
   }
}

/* to perform some validations which are common for all projects.
/*/
function validateMandatoryFld(){
   if (getElementValue("LayoutConstant") == ""){
      //insertErr func cannot be used for this field.
      alert('Please select a "Card Layout"!');
      return false;
   }
   
   var photo = getFieldElement("Photo1Constant");
   var company = getFieldElement("CompanyName");
   var offLoc = getFieldElement("OfficeLocation");
   var errMsg = "", res = true;

   if (photo){// && PROJ_CODE == "C21"
      if (getElementValue("Photo1Constant") == "")
      {
	if (getDivElement("Photo1Constant").style.display == "block")
	{
         errMsg = 'Please select or upload your photo!';
         res = false;
	}
      }
      insertErr(errMsg, "Photo1Constant");
   }

   if (company){
      if (getElementValue("CompanyName") == "" ||
         getElementValue("CompanyName") == "Please Select Company"){
         errMsg = 'Please select a company!';
         res = false;
      }
      else
         errMsg = "";
      insertErr(errMsg, "CompanyName");
   }
   
   if (offLoc){
      if (PFSF_getFieldValue("OfficeLocation") == ""){
         errMsg = 'Please select a location"!';
         res = false;
      }else
         errMsg = "";
      insertErr(errMsg, "OfficeLocation");
   }
      
   if (res){
      if (prdctType == "H2P")
         fixContacts2();
      else
         fixContacts();

      //to distinguish if it's single/double sided
      getFieldElement("Side").value = (getElementValue("BGBackConstant") ? 2:1);
   }
   return res;
}

/* this function will be called by chooseImage3 program before popup being closed.
/*/
function BehzadFunc(){
   switch (popupType){
      case DA_LAYOUT:
         onchangeLayout();
			//if (getFieldElement("CompanyName") != null)
			//	enableFld("CompanyName");
         break;
      case DA_AWARD:
         switch (PROJ_CODE){
            case "C21":
            case "CEN":
            case "RLP":
            case "RMX":
            case "SBK":
               sortAwards();
         }
   }
   refreshPage();
   //window.__doPostBack('btnPreview','');
}

/* these variables are public and used in all products.
/*/
var DA_DEP = 8, DA_BG, DA_LAYOUT, DA_AWARD;

var arrFields = new Array();
var photo, image, logoClr, awardGrp, award, contact, bgF;
var popupType, prdctType, prdctTitle, defFrontCat, defBackCat;


