function Post(display_rules,loc_not_required,phonebook_types) {
  this.display_rules = display_rules;
  this.loc_not_required = loc_not_required;
  this.phonebook_types = phonebook_types;

  if (typeof Post._initialized == "undefined") {

    Post.prototype.setConfirmObj = function (post_confirm_obj) {
      this.post_confirm_obj = post_confirm_obj;
    }

    Post.prototype.processSelect = function (el) {
      var param = el.value;
      if (el.id=="ListTypeID//SectionID") {
        this.changeForm(param);
      }
    }

    Post.prototype.changeForm = function (param) {
      var rowStyle = "list-item";

//showArray(this.display_rules);
      if (this.display_rules[param]) {
        if (this.display_rules[param]=="events") {
          this.changeToEventsForm(rowStyle);
        } else if (this.display_rules[param]=="phone") {
          this.changeToPhoneForm(rowStyle);
        } else if (this.display_rules[param]=="wheretofind") {
          this.changeToWhereToFindForm(rowStyle);
        } else {
          this.changeToNormalForm(rowStyle);
        }
        if (this.display_rules[param]=="price") {
          changeStyle("price_row","display",rowStyle);
          changeStyle("currency_row","display",rowStyle);
        }
  //alert("dd"+this.display_rules[param]);
        changeValue("form_type",this.display_rules[param]);
      } else {
        changeValue("form_type","");
        this.changeToNormalForm(rowStyle);
      }
      if (this.loc_not_required[param]) {
        this.changeLocationRequired(true);
      } else {
        this.changeLocationRequired();
      }
    }

    Post.prototype.changeLocationRequired = function (notrequired) {
      var rowStyle = "list-item";
      var RegionID = document.getElementById("RegionID//CityID");
      var CityID = document.getElementById("CityID");

      var pLI = ascendDOM(RegionID,"li");
      var pLabel = getChild(pLI,"label");
      var RegionID_asters = getChild(pLabel,"span");
      var pLabelSpans = pLabel.getElementsByTagName("span");
      for (i=0;i<pLabelSpans.length;i++) {
        if ((pLabelSpans[i].className.indexOf("formlib_errorlabel") != -1)) {
          var RegionID_label = pLabelSpans[i];
        }
      }
      pLI = ascendDOM(CityID,"li");
      pLabel = getChild(pLI,"label");
      var CityID_asters = getChild(pLabel,"span");
      pLabelSpans = pLabel.getElementsByTagName("span");
      for (i=0;i<pLabelSpans.length;i++) {
        if ((pLabelSpans[i].className.indexOf("formlib_errorlabel") != -1)) {
          var CityID_label = pLabelSpans[i];
        }
      }

      if (notrequired) {
        if (RegionID_label) {
          changeStyle(RegionID_label,"color","#000000;");
        }
        if (CityID_label) {
          changeStyle(CityID_label,"color","#000000;");
        }
        changeClass(RegionID_asters,"hide_it");
        changeClass(CityID_asters,"hide_it");
        changeStyle("loc_prompt_row","display",rowStyle);
      } else {
        changeClass(RegionID_asters,"required_field");
        changeClass(CityID_asters,"required_field");
        changeStyle("loc_prompt_row","display","none");
      }
    }

    Post.prototype.changeToEventsForm = function (rowStyle) {
      this.closeNormalForm();
      this.closePhoneForm();
      this.closeWhereToFindForm();

      changeStyle("description_row","display",rowStyle);
      changeStyle("SectionID_row","display",rowStyle);
      changeStyle("VenueID_row","display",rowStyle);
      changeStyle("addvenue_prompt_row","display",rowStyle);
      changeStyle("event_date_row","display",rowStyle);
      changeStyle("event_time_row","display",rowStyle);
      changeStyle("listing_title_row","display",rowStyle);
      changeStyle("is_recurring_row","display",rowStyle);

      var is_recurring_row = document.getElementById("is_recurring_row");
      var myRadios = is_recurring_row.getElementsByTagName("input");

      for (i=0;i<myRadios.length;i++) {
        myRadios[i].pageObj = this;
        addEvent(myRadios[i],"click",this.showEventRecurFields,false);
      }
      this.showEventRecurFields(null,is_recurring_row);

      var VenueID = document.getElementById("VenueID");
      VenueID.pageObj = this;
      addEvent(VenueID,"change",this.handleVenueField,false);

      this.handleVenueField(null,VenueID);
    }

    Post.prototype.changeToPhoneForm = function (rowStyle) {
      this.closeNormalForm();
      this.closeEventsForm();
      this.closeWhereToFindForm();

      changeStyle("SectionID_row","display",rowStyle);
      changeStyle("phonebook_type_row","display",rowStyle);
      changeStyle("phone_row","display",rowStyle);
      changeStyle("phone_row2","display",rowStyle);
      changeStyle("email_row","display",rowStyle);

      var phonebook_type_row = document.getElementById("phonebook_type_row");
      var myRadios = phonebook_type_row.getElementsByTagName("input");

      for (i=0;i<myRadios.length;i++) {
        myRadios[i].pageObj = this;
        addEvent(myRadios[i],"click",this.showPhonebookTypeFields,false);
      }
      this.showPhonebookTypeFields(null,"phonebook_type_row");
    }

    Post.prototype.changeToWhereToFindForm = function (rowStyle) {
      this.closeEventsForm();
      this.closeNormalForm();
      this.closePhoneForm();

      this.post_confirm_obj.changeToBizAddForm();
      changeStyle("SectionID_row","display",rowStyle);
      changeStyle("business_name_row","display",rowStyle);
      changeStyle("location_row","display",rowStyle);
      changeStyle("phone_row","display",rowStyle);
      changeStyle("web_address_row","display",rowStyle);

      var location = document.getElementById("location");
      if (location) {
        // location field is only available for site admins
        var charCounter = new CharCounter("location",800);
        charCounter.init();
      }
    }

    Post.prototype.changeToNormalForm = function (rowStyle) {
      this.closeEventsForm();
      this.closePhoneForm();
      this.closeWhereToFindForm();

      changeStyle("price_row","display","none");

      changeStyle("listing_title_row","display",rowStyle);
      changeStyle("description_row","display",rowStyle);
      changeStyle("SectionID_row","display",rowStyle);
    }

    Post.prototype.closeNormalForm = function () {
      changeStyle("SectionID_row","display","none");
      changeStyle("price_row","display","none");
      changeStyle("listing_title_row","display","none");
      changeStyle("description_row","display","none");
    }

    Post.prototype.closeEventsForm = function () {
      changeStyle("event_date_row","display","none");
      changeStyle("event_time_row","display","none");
      changeStyle("is_recurring_row","display","none");
      changeStyle("RecurTypeID_row","display","none");
      changeStyle("week_day_row","display","none");
      changeStyle("week_num_row","display","none");
      changeStyle("end_date_row","display","none");
      changeStyle("VenueID_row","display","none");
      changeStyle("addvenue_prompt_row","display","none");
    }

    Post.prototype.closePhoneForm = function () {
      changeStyle("phonebook_type_row","display","none");
      changeStyle("business_name_row","display","none");
      changeStyle("first_name_row","display","none");
      changeStyle("last_name_row","display","none");
      changeStyle("phone_row","display","none");
      changeStyle("phone_row2","display","none");
      changeStyle("email_row","display","none");
    }

    Post.prototype.closeWhereToFindForm = function () {
      changeStyle("business_name_row","display","none");
      changeStyle("location_row","display","none");
      changeStyle("phone_row","display","none");
      changeStyle("web_address_row","display","none");

      this.post_confirm_obj.changeToMethodForm();
    }

    Post.prototype.handleVenueField = function (e,el) {
      var rowStyle = "list-item";
      var el = (el) ? el : getTarget(e);

      if (!el) {
        return;
      }

      var pageObj = (this.pageObj) ? this.pageObj : el.pageObj;

      var addvenue_prompt_row = document.getElementById("addvenue_prompt_row");
      if (el.value > 0) {
        pageObj.changeLocationRequired(true);
        changeStyle("addvenue_prompt_row","display","none");
      } else {
        pageObj.changeLocationRequired();
        changeStyle("addvenue_prompt_row","display",rowStyle);
      }
    }

    Post.prototype.showPhonebookTypeFields = function (e,el_id) {
      var rowStyle = "list-item";

      var el = null;
      if (el_id) {
        var phonebook_type_row = document.getElementById("phonebook_type_row");
        var myRadios = phonebook_type_row.getElementsByTagName("input");

        for (i=0;i<myRadios.length;i++) {
          if(myRadios[i].checked) {
            el = myRadios[i];
          }
        }
      } else {
        el = getTarget(e);
      }

      if (!el) {
        return;
      }

      var pageObj = (this.pageObj) ? this.pageObj : el.pageObj;
      var ptype = el.value;

//showArray(pageObj.phonebook_types);
//alert(ptype);
      switch (pageObj.phonebook_types[ptype]) {
        case "business":
          changeStyle("business_name_row","display",rowStyle);
          changeStyle("first_name_row","display","none");
          changeStyle("last_name_row","display","none");
          //changeStyle("alpha_choice_row","display","none");
          changeValue("phonebook_type_hid","business");
          break;
        case "personal":
          changeStyle("business_name_row","display","none");
          changeStyle("first_name_row","display",rowStyle);
          changeStyle("last_name_row","display",rowStyle);
          //changeStyle("alpha_choice_row","display",rowStyle);
          changeValue("phonebook_type_hid","personal");
          break;
      }
    }

    Post.prototype.showEventRecurFields = function (e,parentEl) {
      var rowStyle = "list-item";

      var el = null;
      if (parentEl) {
        var myRadios = parentEl.getElementsByTagName("input");

        for (i=0;i<myRadios.length;i++) {
          if(myRadios[i].checked) {
            el = myRadios[i];
          }
        }
      } else {
        el = getTarget(e);
      }

      if (!el) {
        return;
      }

      var pageObj = (this.pageObj) ? this.pageObj : el.pageObj;
      var ptype = el.value;

//alert(ptype);
      switch (ptype) {
        case "yes":
          changeStyle("RecurTypeID_row","display",rowStyle);
          changeStyle("week_day_row","display",rowStyle);
          changeStyle("end_date_row","display",rowStyle);
          var RecurTypeID = document.getElementById("RecurTypeID");
          RecurTypeID.pageObj = pageObj;
          pageObj.showRecurFields(null,RecurTypeID);
          addEvent(RecurTypeID,"change",pageObj.showRecurFields,false);
          break;
        case "no":
          changeStyle("RecurTypeID_row","display","none");
          changeStyle("week_day_row","display","none");
          changeStyle("week_num_row","display","none");
          changeStyle("end_date_row","display","none");
          break;
      }
    }

    Post.prototype.showRecurFields = function (e,el) {
      var rowStyle = "list-item";

      var el = (el) ? el : getTarget(e);

      if (!el) {
        return;
      }

      var pageObj = (this.pageObj) ? this.pageObj : el.pageObj;

//alert(el.value);
      switch (el.value) {
        case "1":
          //Daily
          changeStyle("week_day_row","display","none");
          changeStyle("week_num_row","display","none");
          break;
        case "2":
          //Weekly
          changeStyle("week_day_row","display",rowStyle);
          changeStyle("week_num_row","display","none");
          break;
        case "3":
          //Monthly - date
          changeStyle("week_day_row","display","none");
          changeStyle("week_num_row","display","none");
          break;
        case "4":
          //Monthly - weekday
          changeStyle("week_day_row","display",rowStyle);
          changeStyle("week_num_row","display",rowStyle);
          break;
      }
    }

    Post._initialized = true;
  }
}

function initPage_obj() {
  //post_obj.init();
}


