// perform on load initialization
var errors_occured = false;
var call_was_successful = false;
var response_area = '';
var encoded_params = '';
var ajax_action = '';
var num_of_submits = 0;

$(document).bind('ready', function(){

    $('.useDatePicker').datepicker({dateFormat:'yy-mm-dd'});
    $('.custom_button, .hover_menu').mouseenter(function()
    {
        $('.hover_menu').fadeIn('fast');
        $('.custom_button').addClass('active');
        $(this).data('in', true);
        $('.hover_menu').data('hidden', false);
    }).mouseleave(function()
    {
        $(this).data('in', false);
        setTimeout(hideMenu, delay);
    });

    var delay = 400;
    function hideMenu()
    {
        if (!$('.custom_button').data('in') && !$('.hover_menu').data('in') && !$('.hover_menu').data('hidden'))
        {
            $('.hover_menu').fadeOut('fast');
            $('.custom_button').removeClass('active');
            $('.hover_menu').data('hidden', true);
        }
    }


    $('input[type=file]').change(function() {
        switch($(this).attr('name')){
            case 'goal_image':
                fn = $(this).attr('value');
                fn_array = fn.split('\\');
                idx = fn_array.length - 1;
                $('#uploaded_img').val(fn_array[idx]);
                $('#upload_progressdiv').show();
                // disable validate from the goal form

                $(this).upload('/render.php?mod=goals&action=core&params=request~uploadIMG',
                    function (data){
                        resp_array = data.split('||');
                        for(i=0;i<resp_array.length;i++){
                            if(resp_array[i]){
                                keyval = resp_array[i];
                                if(keyval.indexOf('~~~') > 0){
                                    keyval_array = keyval.split('~~~');
                                    if(keyval_array[0]){
                                        keyname = keyval_array[0];
                                    } else {
                                        keyname = '';
                                    }
                                    if(keyval_array[1]){
                                        keyvalue = keyval_array[1];
                                    } else {
                                        keyvalue = '';
                                    }
                                    // begin tests
                                    if(keyname == 'dialog_content'){
                                        $('#dialog_content').html(keyvalue);
                                        $('#dialog').dialog("open");
                                        $('#upload_msg').html('Attachment Failed');
                                        $('#uploaded_img').val('');
                                        $('#upload_progressdiv').hide();
                                        break;
                                    }
                                    if(keyname == 'image_thumb'){
                                        $('#goalimglrg').attr('src',keyvalue);

                                    }
                                    if(keyname == 'uploaded_img'){
                                        $('#upload_msg').html('Goal image has been uploaded');
                                        $('#uploaded_img').val(keyvalue);
                                        $('#upload_progressdiv').hide();
                                    }
                                }
                            }
                        }
                        // re-establish validation on the goal form
                    },
                    'html');
                break;
            default:
                fn = $(this).attr('value');
                fn_array = fn.split('\\');
                idx = fn_array.length - 1;
                $('#uploaded_img').val(fn_array[idx]);
                $('#upload_progressdiv').show();
                userid = $('#profid').val();

                $(this).upload('/render.php?mod=site_user&action=upload&params=upl_profid~'+userid,
                    function (data){

                        resp_array = data.split('||');
                        if(resp_array[0] == 'ERROR'){
                            element_name = '';
                            element_value = '';
                            if(resp_array[1]){
                                filename = resp_array[1];
                            }
                            $('#upload_msg').html('Attachment Failed');
                            $('#uploaded_img').val('');
                            $('#upload_progressdiv').hide();
                        } else {
                            msg = 'Profile image has been uploaded.';
                            filespec = '';
                            if(resp_array[1]){
                                filespec = resp_array[1];
                            }
                            $('#upload_msg').html(msg);
                            $('#uploaded_img').val(filespec);
                            $('#upload_progressdiv').hide();

                            reloadImg('profimglrg');
                            reloadImg('profimgsm');

                        }
                    },
                    'html');
                break;
        }

    });

    // TJ:  attempt to get a close-on-click-off dialog working
    //      * works (once?) if you have a specific ID but won't work on a class
    $(".ui-widget-overlay").live("click", function() {  $('#SEOmodal').dialog("close"); } );
    //$(".ui-widget-overlay").live("click", function() {  $('.ui-dialog :visible').dialog("close"); } );


    // modal and SEOmodal class (not actually defined in main.css)
    //   iframes the href in modal dialog
    //   and adds ?modal=yes to allow render to make
    //   wrapper decisions
    //$('.SEOmodal,.modal').click(function(e){
   $('.SEOmodal,.modal').live('click' , function(e){
        e.preventDefault();
        // if link has class SEOmodal, add modal parameter to URL
        if($(this).attr('class').indexOf("SEOmodal") > -1) {
            if($(this).attr('href').indexOf("?") > -1) {
                // url already has parameters
                src = $(this).attr('href') + '&modal=yes';
            } else {
                src = $(this).attr('href') + '?modal=yes';
            }
        } else {
            src = $(this).attr('href');
        }

        $('<iframe id="SEOmodal" frameborder="0" src="' + src + '" />').dialog({
            autoOpen: true,
            width: 800,
            height: 500,
            modal: true,
            resizable: true,
            open: function(){
                $(this).css('width','95%');
            },
            buttons: {
                'Close': function() {
                    $(this).dialog('close');
                }
            }
        })
    });


   $('.domodal').live('click' , function(e){
        e.preventDefault();
        // if link has class SEOmodal, add modal parameter to URL
            src = $(this).attr('href');

        $('<iframe id="DOmodal" frameborder="0" src="' + src + '" />').dialog({
            autoOpen: true,
            width: 800,
            height: 500,
            modal: true,
            resizable: true,
            open: function(){
                $(this).css('width','95%');
            },
            buttons: {
                'Close': function() {
                    $(this).dialog('close');
                }
            }
        })

        $(".ui-dialog-titlebar-close").hide();
        $(".ui-dialog-titlebar").hide();

    });

   $('.modal_sm').live('click' , function(e){
        e.preventDefault();
        // if link has class SEOmodal, add modal parameter to URL
            src = $(this).attr('href');

        $('<iframe id="modal_sm" frameborder="0" src="' + src + '" />').dialog({
            autoOpen: true,
            width: 400,
            height: 375,
            modal: true,
            resizable: true,
            open: function(){
                $(this).css('width','95%');
            },
            buttons: {
                'Close': function() {
                    //$(this).dialog('close');
                    parent.location.reload();
                }
            }
        })
        $(".ui-dialog-titlebar-close").hide();
    });


    // speedbump class (not actually defined in main.css)
    //   iframes the speedbump in modal dialog
    $('.speedbump').click(function(e){
        e.preventDefault();
        orig_href = $(this).attr('href');
        src =  '/speedbump.php?url=' + escape(orig_href);

        $('<iframe id="speedbump" src="' + src + '" />').dialog({
            autoOpen: true,
            width: 800,
            height: 500,
            modal: true,
            resizable: true,
            open: function(){
                $(this).css('width','95%');
            },
            buttons: {
                'Cancel': function() {
                    $(this).dialog('close');
                }
            }
        })
    });



   // page requests via get
   $('.pgrequest').live('click' , function(e){
        e.preventDefault();
        url = '';
        url_array = $(this).attr('href').split("/");
        type = url_array[1];
        switch(type){
            case 'alert':
                id = url_array.pop();
                id = id.replace('.html','');
                url = '/render.php?mod=rendRequest&action=core&params=request~alert|id~' + id;
                break;
            case 'comments':
                // get more comments
                if($('#fk_id').length > 0){
                    id = $('#fk_id').val();
                    type = $('#content_type').val();
                    comments_displayed = $('#num_comments_displayed').val();
                    url = '/render.php?mod=rendRequest&action=core&params=request~comments|id~' + id + '|type~' + type + '|numdisplayed~' + comments_displayed;
                }
                break;
            default:
                break;
        }
        if(url != ''){
            getRequest(url,'GET',true);
        }
   });

   $(".JQSlider").click(function (event) {
        event.preventDefault();
        this_href = $(this).attr("href").replace(/javascript:/i,'');
        eval(this_href);
        div_2_toggle = $(this).parent(".JQSlider_parent").children(".slider_content").get(0);
        if($(this).parent(".JQSlider_parent").children(".faq_icon").length > 0){
            faq_icon = $(this).parent(".JQSlider_parent").children(".faq_icon").get(0);
            if($(faq_icon).attr("src") == '/img/icon_faq.gif'){
                $(faq_icon).attr({ src : "/img/icon_faq_open.gif"});
            } else {
                $(faq_icon).attr({ src : "/img/icon_faq.gif"});
            }
        }
        $(div_2_toggle).slideToggle() ;
    });

    $(".JQGlossary").cluetip({
        closePosition : "title",
        positionBy: 'mouse',
        sticky : true,
        mouseOutClose : true,
        arrows: true,
        ajaxSettings : {
            type : "GET",
            ajaxCache: false
        }
    });

    $(".JQQuickOption").change(function (event) {
        event.preventDefault();
        if(isAllSpaces($(this).val())){
            return false;
        }
        if($(this).val().substr(0,9) == 'speedbump'){
            $.nyroModalManual({
                  url: $(this).val()
            });
            return false;
        } else {
            window.location = $(this).val();
        }
    });

    $('.JQdeleteFD').live('click' , function(e){
        e.preventDefault();
        $delete_button = $(this);

        $('<div>').dialog({
          autoOpen: true,
          position: 'center',
          modal: true,
          height: 'auto',
          width: 450,
          resizable: true,
          title: 'Delete Step',
          open: function(){
              $(this).html('Are you sure you want to delete this Financial Item?<br /><br />NOTE: This cannot be undone.');
              $(this).css('width','95%');
          },
              buttons: {
                  'Ok': function() {
                      $(this).dialog('close');
                      $delete_button.closest('fieldset').remove();
                  },
                  'Cancel': function() {
                      $(this).dialog('close');
                  }
              }
        });
    });
    $('#fadingbanners').before('<div id="fbpager">').cycle({
//    $('#fadingbanners').cycle({
        fx:     'fade',
        speed:  'slow',
        speedIn:  2000,
        speedOut:  2000,
        timeout: 10000,
        pager:  '#fbpager'
    });

    $('#ManualSubmit').click(function(e) {
        e.preventDefault();
        $.nyroModalManual({
            url: 'speedbump_notify.php'
        });
        return false;
    });

   // interior content tabs
    $('.ca_tabs li').live('click' , function(e){
        $('.ca_tabs').find('.current').removeClass("current");
        $(this).addClass('current');

        item_2_select = 'ca_' + $(this).index();
        $('div[class^=ca_panel]:visible').hide();

        $('div[class~=' + item_2_select + ']').show();
        anchor_href = $(this).find('a:first').attr('href');
        e.preventDefault();
   });

   // interior content tabs 2nd bank of tabs
    $('.ca_tabs_2nd_bank li').live('click' , function(e){
        $('.ca_tabs_2nd_bank').find('.current').removeClass("current");
        $(this).addClass('current');

        item_2_select = 'ca_pos_' + $(this).index();
        $('div[class^=ca_2nd_bank]:visible').hide();

        $('div[class~=' + item_2_select + ']').show();
        anchor_href = $(this).find('a:first').attr('href');
        e.preventDefault();
   });

   // revised related content tabs
   //
   //  numbered tabs don't work when one or more of them
   //   can be disabled
   //
   $('.related_tabs li').live('click' , function(e){
        $('.related_tabs').find('.on').removeClass("on");
        $(this).addClass('on');
        tab_id = $(this).find('a:first').attr('id');
        token_parts = tab_id.split('__');
        identifier = token_parts[1];
        panel_2_select = 'panel__' + identifier;
        //$('.inner.tabs:visible').hide();
        $('div[class^=related_panel]:visible').hide();
        $('#' + panel_2_select).show();
        e.preventDefault();
   });



   // profile/preferences tabs
    $('#pref_tabs li').live('click' , function(e){
        $('#pref_tabs').find('.current').removeClass("current");
        $(this).addClass('current');

        $('#profImageDiv').toggle();

        item_2_select = 'pref_panel_' + $(this).index();
        $('div[id^=pref_panel]:visible').hide();

        $('#' + item_2_select ).show();
        anchor_href = $(this).find('a:first').attr('href');
        e.preventDefault();
   });

   //  saved content tabs
    $('#saved_tabs li').live('click' , function(e){
        $('#saved_tabs').find('.current').removeClass("current");
        $(this).addClass('current');

        item_2_select = 'saved_panel_' + $(this).index();
        $('div[id^=saved_panel]:visible').hide();

        $('#' + item_2_select ).show();
        anchor_href = $(this).find('a:first').attr('href');
        e.preventDefault();
   });


   // mySummit Goals  (myg) tabs on click process the
    $('#myg_tabs li').live('click' , function(e){

        // force the thank you div to be hidden and the goals div to be visible
        $('#myg_message_panel').removeClass('show').addClass('hide');
        // process the form

        processGoalForm = 'no';
        if($('#goalForm').length > 0){
          if($('#fintab').length > 0){
            if($('#fintab').val() == '' || $('#fintab').val() == 'respond'){
                $('#fintab').val('');
                processGoalForm = 'yes';
            } else {
                $('#fintab').val('');
            }
          } else {
            //form element so go ahead and process
            processGoalForm = 'yes';
          }
        }
        if(processGoalForm == 'yes'){
            processGoalFormFinData();
        }
        // if goaltab was clicked load the list mode page else switch the tabs
        if($(this).attr('id') == 'goaltab'){
            anchor_href = $(this).find('a:first').attr('href');
            window.location.href = anchor_href;
        } else {
            $('#myg_tabs').find('.current').removeClass("current");
            $(this).addClass('current');

            item_2_select = 'myg_panel_' + $(this).index();
            $('div[id^=myg_panel]:visible').hide();

            $('#' + item_2_select ).show();
        }
   });

   // mySummit Goals  (myg) tabs on click process the
    $('#myge_tabs li').live('click' , function(e){
        $('#myge_tabs').find('.current').removeClass("current");
        $(this).addClass('current');
        tabidx = $(this).index();
        item_2_select = 'myge_panel_' + $(this).index();
        $('div[id^=myge_panel]:visible').hide();

        $('#' + item_2_select ).show();
        anchor_href = $(this).find('a:first').attr('href');
        e.preventDefault();

        // if the discussion tab has been clicked update the comments viewed
        if(tabidx == 1){
            if($('#comment_ids_displayed').length > 0){
                if($('#comment_ids_displayed').val() != ''){
                    request_OBJ = '/render.php?mod=goals&action=core&params=request~commentsAccessed||id~' + $('#goal_id').val() + '||comment_ids_displayed~' + $('#comment_ids_displayed').val();
                    getRequest(request_OBJ, 'GET', true);
                }
            }
        }
        // force the thank you div to be hidden and the goals div to be visible

        // process the form
        //if($('#goalForm').length > 0){
        //    processGoalFormFinData();
        //}

   });

   // trigger the click event if specified
   if($('#triggerTab').length > 0 && $('#triggerTab').val() != ''){
        $('#myge_tabs li:eq(' + $('#triggerTab').val() + ')').trigger('click');
   }


   // establish normal dialog parameters
   $('#dialog').dialog({
        autoOpen: false,
        position: 'center',
        modal: true,
        height: 'auto',
        width: 400,
        buttons: {
            'Ok': function() {
                $(this).dialog('close');

              if($('#pg2load').length > 0 && $('#pg2load').html() != ''){
                  reloadPage('pg2load');
              } else {
 //                 reloadPage('reload');
              }


            }
        }

   });

   // establish normal dialog parameters
   $('#dialog_delete').dialog({
        autoOpen: false,
        position: 'center',
        modal: true,
        height: 'auto',
        width: 400
   });

   // establish dialog box when closed will force the page to reload
   $('#dialogReload').dialog({
        autoOpen: false,
        position: 'center',
        modal: true,
        height: 'auto',
        width: 400,
        buttons: {
           'Ok': function() {
              $(this).dialog('close');
              if($('#pg2load').length > 0 && $('#pg2load').html() != ''){
                  reloadPage('pg2load');
              } else {
                  reloadPage('reload');
              }

          }
      }

   });
   // dialog for preview
   $('#dialog_preview').dialog({
        autoOpen: false,
        position: 'center',
        modal: true,
        height: 'auto',
        width: 700,

        beforeClose: function(event, ui) {
            if($('#goalContactForm').length > 0){
                window.location.href = '/goals/' + $('#goalid').val() + '/mySummit/editgoal.html?message=createNC';
            }
        },
        buttons: {
            'Ok': function() {
                $(this).dialog('close');
            },
            'Cancel': function() {

                $(this).dialog('close');
            }
        }
   });
    // establish modal dialog parameters
   $("#modal_dialog").dialog( {
            autoOpen: false,
            position: 'center',
            modal: true,
            minHeight: 500,
            width: 400,
			resizable: false,
			draggable: false,
            title: '',
            beforeClose: function(event, ui) {
                    if($('#login_div').length > 0){
                        if($('#login_div').is(':hidden')){
                            $('#login_div').toggle();
                            $('#sendmail_div').hide();
                            $('#changepwd_div').hide();
                        }

                    }

            }
   });
   //$(".ui-dialog-titlebar-close").show();

   // generic dialog definition
   $('#gen_dialog').dialog({
        autoOpen: false,
        position: 'center',
        modal: true,
        height: 'auto',
        maxWidth: 400,
        width: 450,
        buttons: {
            'Ok': function() {
                $(this).dialog('close');
            }
        }
   });

   $('#loginlnk').live('click' , function(e){
        $(".ui-dialog-titlebar-close").show();
        $("#forgot_and_register").show();
        $("#register_field").show();
        $("#changepwd_div").hide();
        $('#modal_dialog').dialog("open");
        $('#modal_dialog').dialog('option', 'title', '');
        anchor_href = $(this).find('a:first').attr('href');
        e.preventDefault();
   });

   // any class with loginreqlink will, when clicked request the user to login
   $("[class*='loginRegLnk']").live('click' , function(e){
        $("#forgot_and_register").show();
        $("#register_field").show();
        $("#changepwd_div").hide();
        //$(".ui-dialog-titlebar-close").hide();
        $('#modal_dialog').dialog("open");
        if(this.id){
            switch(this.id){
                case 'create-group':
                    if($('#retpage').length > 0){
                        url = this.href.replace(/#/mg,'');
                        $('#retpage').val(url);
                        $('#pg2load').html(url);
                    }
                    break;
                default:
                    urlparams = $(this).attr('data-save');
                    urlparams += '|path~' + window.location.pathname;
                    // if saved items then get the panel that is opened
                    if($("#saved_panel_0").length > 0){
                        urlparams += '|saveditemspanel~' + $('div').find('.panel_profile.show').attr("id");
                    }
                    $('#params').val(urlparams);
                    break;
            }

        }

        e.preventDefault();
   });

   $("#post_comment:not([class*='loginRegLnk'])").bind('click' , function(e){
        $("#comment_form").removeClass('hide').addClass('show');
        anchor_href = $(this).find('a:first').attr('href');
        e.preventDefault();
   });


    jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
        phone_number = phone_number.replace(/\s+/g, "");
    	return this.optional(element) || phone_number.length > 9 &&
    		phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
    }, "Please specify a valid phone number (format ###-###-####)");

   // register form processing
   $("#registerform").validate({
        errorElement: "div",

        rules: {
            usr_email2: {
              equalTo: "#usr_email"
            },
            usr_password: {
              minlength: 6
            },
            formkey_user: {
              required: true,
              remote: {
                url: "/scripts/captcha_validator.php",
                type: "post",
                data: {
                  fks: function() {
                    return $("#formkey_sys").val();
                  },
                  fku: function() {
                    return $("#formkey_user").val();
                  }
                }
              }
            }
        },
        messages: { formkey_user: "Correct security field code is required."},
        submitHandler: function(form) {
            getRequest(form.id);
        },
        success: function(label) {
            // set   as text for IE
            label.html("");
        }
   });


   // register form processing
   $("#profileform").validate({
        errorElement: "div",
        submitHandler: function(form) {
          if($("input:radio[name='bus_or_ind']:checked").val() == 'bus') {
            var content = tinyMCE.activeEditor.getContent(); // get the content from business description
            $('#bus_description').val(content); // put it in the textarea
            if($('#delprofile').length > 0 && $("#delprofile").is(':checked') ){
                deleteAccountReq('deleteStep1');
            } else {
                previewRequest('select','BusListing',form.id);
            }
          } else {
            if($('#delprofile').length > 0 && $("#delprofile").is(':checked') ){
                deleteAccountReq('deleteStep1');
            } else {
                getRequest('profileform');
            }
          }
        },
        success: function(label) {
            // set   as text for IE
            label.html("");
        }
   });

   // initialize the profile form for individual or business
   if($("#profileform").length > 0){
     if($("input:radio[name='bus_or_ind']:checked").val() == 'ind') {
        ToggleRegistrationType('ind');
     } else {
        ToggleRegistrationType('bus');
     }
   }



   // login form processing
   $("#loginform").validate({
        errorElement: "div",
        rules: {
            uname: {
              required: true,
              email: true
            },
            pword: {
              required: true,
              minlength: 6
            }
        },
        submitHandler: function(form) {
            getRequest(form.id);
        }
   });

   // request info
   $("#reqpwform").validate({
        errorElement: "div",
        submitHandler: function(form) {
            getRequest(form.id);
        },
        success: function(label) {
            // set   as text for IE
            label.html("");
        }
   });

   // request info
   $("#chgpwform").validate({
        errorElement: "div",
        rules: {
            pwd2: {
              equalTo: "#pwd1"
            },
            pwd1: {
              minlength: 6
            },
            pwd2: {
              minlength: 6
            }
        },
        submitHandler: function(form) {
            getRequest(form.id);
        },
        success: function(label) {
            // set   as text for IE
            label.html("");
        }
   });

   // post a comment form processing

   $("#commentForm").validate({
        errorElement: "div",
        rules: {
            comment_title: {
              required: true
            },
            comment: {
              required: function () {
                        return valCommentField();
                    }

            }
        },
        submitHandler: function(form) {
           previewRequest('select','comment',form.id);
        },
        success: function(label) {
            // set   as text for IE
            label.html("");
        }
   });

   // post a group form processing
   $("#postForm").validate({
        errorElement: "div",
        submitHandler: function(form) {
            previewRequest('select','group',form.id);
        },
        success: function(label) {
            // set   as text for IE
            label.html("");
        }
   });

   // contact form validation
   $("#contactform").validate({
        errorElement: "div",
        rules: {
            formkey_user: {
              required: true,
              remote: {
                url: "/scripts/captcha_validator.php",
                type: "post",
                data: {
                  fks: function() {
                    return $("#formkey_sys").val();
                  },
                  fku: function() {
                    return $("#formkey_user").val();
                  }
                }
              }
            }
        },
        messages: { formkey_user: "Correct security field code is required."},
        submitHandler: function(form) {
            validatecontact();
        },
        success: function(label) {
            // set   as text for IE
            label.html("");
        }
   });

   // rate alert
   $('.ratealert').live('click' , function(e){
        e.preventDefault();
        rateAlert($(this).attr('href'));
   });

   // rate alert form processing
   $("#raform").validate({
        errorElement: "div",
        errorPlacement: function(error, element) {
            element_name = element.attr("name");
            switch(element_name){
                case 'fk_rec_id':
                    $('#ra_error_msg').html(error);
                    break;
                 case 'name':
                 case 'email_address':
                    error.insertAfter(element.prev());
                    break;
                 case "desired_rate":
                    error.appendTo(element.parent());
                    break;
                default:
                    error.insertAfter(element.closest('fieldset'));
                    break;
            }

        },
        submitHandler: function(form) {
            getRequest(form.id);
        },
        success: function(label) {
            // set   as text for IE
            label.html("");
        }
   });

   // initialize the goal form if present
   if($('#goalForm').length > 0){
      initGoalForms('goal');
   }
   // class=calcmodal  for iframed calcs
   $('.calcmodal').live('click' , function(e){
        e.preventDefault();
        openCalc($(this).attr('href'));
   });

   $.extend($.ui.dialog.prototype, {
        'addbutton': function(buttonName, func) {
                var buttons = this.element.dialog('option', 'buttons');
                buttons[buttonName] = func;
                this.element.dialog('option', 'buttons', buttons);
        }
    });

    $.extend($.ui.dialog.prototype, {
        'removebutton': function(buttonName) {
                var buttons = this.element.dialog('option', 'buttons');
                delete buttons[buttonName];
                this.element.dialog('option', 'buttons', buttons);
        }
    });


   // green-bar alternating rows:
   $("table.list_view tr:nth-child(even)").removeClass("list_row").addClass("list_row_alt");



    // any table with this class can be sortable if it has thead,tbody,and th elems

    if($(".SortableTable").length > 0){

      $(".SortableTable").tablesorter({widgets: ['zebra'],
          textExtraction: function(cell) {
              // format your data for normalization
              cellcontent = cell.innerHTML;

              var spattern  = /<div class="sortkey">([^<]*)<\/div>/;
              var result = cellcontent.match(spattern);
              if (result != null) {
                var sortkey = result[1]
                //alert('found sortkey:'+sortkey);
                return sortkey;
              } else {
                return cellcontent;
              }
          }
      });

      //$('#EventsListTable').tablesorter({headers:{2:{sorter:false}}});
    }


    if(window.location.href.indexOf("autologin") != -1) {
        $('#loginlnk').trigger('click');
    }


    if(window.location.href.indexOf("chgpwdkey") != -1) {

        $(".ui-dialog-titlebar-close").show();
        $('#modal_dialog').dialog("open");
        $('#modal_dialog').dialog('option', 'title', '');

        if($('#chgpwd_key_isvalid').length > 0 && $('#chgpwd_key_isvalid').val() == '1') {
          $('#login_div').hide();
          $('#sendmail_div').hide();
          $('#changepwd_div').show();
          $('#chgpwd_form').show();
          $('#chgpwd_error').hide();
          $('#forgot_and_register').hide();
        } else {
          $('#login_div').hide();
          $('#sendmail_div').hide();
          $('#changepwd_div').show();
          $('#chgpwd_form').hide();
          $('#chgpwd_error').show();
          $('#forgot_and_register').hide();
        }
      }

    // if the mobile option block is present, then PHP identified this
    //  visitor as a mobile visitor, so transition the mobile link block:
    if($('#mobileoptionblock').length > 0){
      $('#mobileoptionblock').delay(2000).show('blind',700).delay(15000).hide('blind',500);
    }

    // perform check for tinyMCE
    initTinyMCE();

});


// initialization of tinymce
function initTinyMCE(){
    if(typeof tinyMCE != 'undefined'){
      if($('.tinyEd1').length > 0){
          tinyMCE.init({
              mode : "specific_textareas",
              editor_selector : "tinyEd1",
              gecko_spellcheck : true,

              relative_urls : false,
              force_p_newlines : true,
              forced_root_block : '',

              // content CSS (should be your site CSS)
              content_css :  '/css/editor_content.css',

              // popup options
              dialog_type : "modal",
              remove_script_host : true,
              theme : "advanced",
              plugins : "jqueryinlinepopups,autoresize,L9Anchor",
              theme_advanced_buttons1 : "bold,italic,L9Anchor,unlink",
              theme_advanced_buttons2 : "",
          	  theme_advanced_buttons3 : "",
              theme_advanced_layout_manager : "SimpleLayout",
              theme_advanced_toolbar_location : "top",
              theme_advanced_source_editor_wrap : true,
              theme_advanced_toolbar_align : "left",
              theme_advanced_statusbar_location : "none",
              theme_advanced_resizing : true,
              theme_advanced_resizing_use_cookie : false,
              theme_advanced_resize_horizontal : false,
              theme_advanced_source_editor_width : 300,
              theme_advanced_resizing_max_height : 520,
              theme_advanced_blockformats : "p,h2,h3,h4",
              removeformat_selector : "h1,h2,h3,h4,h5,h6,b,strong,em,i,u,span,ins",
              apply_source_formatting : true,
              convert_newlines_to_brs : true,
              force_br_newlines : true,
              force_p_newlines : false,
              forced_root_block : '', // Needed for 3.x

              remove_linebreaks : false
          });
      } else if($('.tinyEd').length > 0){
          tinyMCE.init({
              mode : "specific_textareas",
              editor_selector : "tinyEd",
              gecko_spellcheck : true,

              relative_urls : false,
              force_p_newlines : true,
              forced_root_block : '',

              // content CSS (should be your site CSS)
              content_css :  '/css/editor_content.css',

              // popup options
              dialog_type : "modal",
              remove_script_host : true,
              theme : "advanced",
              plugins : "",
              theme_advanced_buttons1 : "bold,italic",
              theme_advanced_buttons2 : "",
          	  theme_advanced_buttons3 : "",
              theme_advanced_layout_manager : "SimpleLayout",
              theme_advanced_toolbar_location : "top",
              theme_advanced_source_editor_wrap : true,
              theme_advanced_toolbar_align : "left",
              theme_advanced_statusbar_location : "none",
              theme_advanced_blockformats : "p,h2,h3,h4",
              removeformat_selector : "h1,h2,h3,h4,h5,h6,b,strong,em,i,u,span,ins",
              apply_source_formatting : true,
              convert_newlines_to_brs : true,
              force_br_newlines : true,
              force_p_newlines : false,
              forced_root_block : '', // Needed for 3.x

              remove_linebreaks : false
          });
      }
    }
}

// destroys all instances of tinymce. must be destroyed from last to first created
function destroytinyMCE(){
      for (var i=(tinymce.editors.length - 1); i>=0; i--) {
        tinyMCE.execCommand('mceFocus', false, tinymce.editors[i].id);
        tinyMCE.execCommand('mceRemoveControl',false, tinymce.editors[i].id);
      };
}

function clearEditor(){
    tinyMCE.activeEditor.setContent("");
}

// special validate functions
function valCommentField(){
    var content = tinyMCE.activeEditor.getContent(); // get the content
    $('#comment').val(content); // put it in the textarea

    // if the content is empty, return true so that validate validates for requiredalert(
    if($('#comment').val() != ''){
        return true;
    } else {
        return false;
    }

}

// modal popup functions
function getPopupFunction() {
    return $("#popFunctionMemory").text();
}
function getPopupRequest() {
    stored = $("#popRequestMemory").text();
    return $.evalJSON(stored);
}
function getPopupResult() {
    stored = $("#popResultMemory").text();
    return $.evalJSON(stored);
}


function callPopup(functionName,aobj) {
    var aobj_encoded = $.toJSON(aobj);
    $("#popRequestMemory").text(aobj_encoded);

     $("#popFunctionMemory").text(functionName);

    funcIsDefined = eval('(typeof ' + functionName + '==\'function\');');
    if (funcIsDefined) {
        eval(functionName+'(\'init\');');
    }
}

// allows for the preview of the content prior to final submission
function previewRequest(request_type,type,id){
    switch(request_type){
        case 'select':
            formACTION = $("#" + id + " :input[name='action']").val();       // get the original action
            callPopup('previewRequest',{form_type:type,form_id:id,form_action:formACTION} );
            break;
        case 'init':
            // get the parameter object and parse the paremeters to pass
            params = getPopupRequest();
            formTYPE = 'form_type' in params? params.form_type : '';
            formID = 'form_id' in params? params.form_id : '0';
            formACTION = 'form_action' in params? params.form_action : '';
            // change the forms action for previewing e.g. prevcomment
            $("#" + formID + " input[name='action']").val('prev' + formTYPE);
            getRequest(formID);
            break;
        case 'ok':
            params = getPopupRequest();
            formID = 'form_id' in params? params.form_id : '0';
            formACTION = 'form_action' in params? params.form_action : '';
            $("#" + formID + " input[name='action']").val(formACTION);
            getRequest(formID);
            $('#dialog_preview').dialog('close');
            break;
        case 'cancel':
            params = getPopupRequest();
            formID = 'form_id' in params? params.form_id : '0';
            formACTION = 'form_action' in params? params.form_action : '';
            $("#" + formID + " input[name='action']").val(formACTION);
            $('#dialog_preview').dialog('close');
            break;
        default:
            break;
    }
}


function View(vtype,url) {

    alert('view of ' + url);

}
// toggles the login form/forgot password
function toggleLgnFrm(id){
    $('#login_div').toggle();
    $('#sendmail_div').toggle();
    $('#changepwd_div').hide();
    $('#forgot_and_register').show();

    if ($('#forgotlogin').text() == 'Forgot your Password?') {
    //if($('#sendmail_div').is(':visible')){
        $('#forgotlogin').text('Back to Sign In.');
        $('.login_title').removeClass('login_title').addClass('forgot_password_title');
    } else {
        $('#forgotlogin').text('Forgot your Password?');
        $('.forgot_password_title').removeClass('forgot_password_title').addClass('login_title');

    }
}
function initializeLogin(){

    $("[class*='loginRegLnk']").unbind('click').removeClass('loginReqLnk');
    $('#comment_form').toggle();

}
/**
 * Function : dump()
 * Arguments: The data - array,hash(associative array),object
 *    The level - OPTIONAL
 * Returns  : The textual representation of the array.
 * This function was inspired by the print_r function of PHP.
 * This will accept some data as the argument and return a
 * text that will be a more readable version of the
 * array/hash/object that is given.
 * Docs: http://www.openjs.com/scripts/others/dump_function_php_print_r.php
 */
function dump(arr,level) {
	var dumped_text = "";
	if(!level) level = 0;

	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";

	if(typeof(arr) == 'object') { //Array/Hashes/Objects
		for(var item in arr) {
			var value = arr[item];

			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += dump(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}



  function RateView(rating) {
    var TextRatings = new Array();
    TextRatings[0] = '';
    TextRatings[1] = 'Hated it.';
    TextRatings[2] = 'Did not like it.';
    TextRatings[3] = 'Liked it.';
    TextRatings[4] = 'Loved it.';
    TextRatings[5] = 'Awesome!';

    // if user just rated, label will no longer be
    //  'Rate This' so we can prevent a revote:
    if($('#rating_label').html() == 'Rate This') {
      for(i=1;i<=5;i++) {
        star = document.getElementById('rate'+i);
        if(i<=rating) {
          // set
          star.src = '/img/star.gif';
        } else {
          //clear
          star.src = '/img/star_blank.gif';
        }
      }
    }

  }

function logout(){
  if(window.location.pathname == '/'){
    getRequest("/render.php?mod=site_user&action=logout&params=retpage~", 'GET', true);
  } else {
    getRequest("/render.php?mod=site_user&action=logout&params=retpage~" + window.location.pathname, 'GET', true);
  }
}

function SavePR() {
  document.prForm.abstract.value = tinyMCE.get('abstract').getContent();
  document.prForm.copy.value = tinyMCE.get('copy').getContent();
    if($('#prForm').valid()) {
        getRequest('prForm');
    } else {
      $('#dialog').text("This Press Release cannot be saved yet.  Check all fields for required information.");
      $('#dialog').dialog("open");
    }
}

function SaveEvent() {
  document.eventForm.description.value = tinyMCE.get('description').getContent();
    if($('#eventForm').valid()) {
        getRequest('eventForm');
    } else {
      $('#dialog').text("This Event cannot be saved yet.  Check all fields for required information.");
      $('#dialog').dialog("open");
    }
}

// request to delete the account
function deleteAccountReq(request_type){
    switch(request_type){
        case 'deleteStep1':
            getRequest("/render.php?mod=site_user&action=deleteStep1", 'GET', true);
            break;
        case 'deleteStep2':
            $('#dialog_delete').dialog('close');
            getRequest("/render.php?mod=site_user&action=deleteStep2", 'GET', true);
            break;
        case 'deleteStep3':
            $('#dialog_delete').dialog('close');
            // get the form elements and load them into the parameter element
            if($('#pword').length > 0){
                params = 'pword~' + $('#pword').val();
            } else {
                params = 'pword~';
            }

            if($('#delete_params').length > 0){
                params += '|' + $('#delete_params').val();
            } else {
                params = '';
            }

            getRequest("/render.php?mod=site_user&action=deleteStep3&params=" + params, 'GET', true);
            break;
        case 'deleteStep4':
            $('#dialog_delete').dialog('close');
            // get the form elements and load them into the parameter element
            if($('#reason').length > 0){
                params = 'reason~' + $('#reason').val();
            } else {
                params = 'reason~';
            }

            if($('#delete_params').length > 0){
                params += '|' + $('#delete_params').val();
            } else {
                params = '';
            }

            getRequest("/render.php?mod=site_user&action=deleteStep4&params=" + params, 'GET', true);
            break;
        case 'cancel':
            $('#delprofile').attr('checked','');
            if($("input:radio[name='bus_or_ind']:checked").val() == 'ind') {
                ToggleRegistrationType('ind');
             } else {
                ToggleRegistrationType('bus');
             }
            $('#dialog_delete').dialog('close');
            break;
        default:
            break;
    }

}
function resetProfileImage(){
    getRequest("/render.php?mod=site_user&action=resetProfileImage&params=", 'GET', true);
}
function RateIt(thingtype,thingid,rating) {
    // thingtypes: page, post

    // if user just rated, label will no longer be
    //  'Rate This' so we can prevent a revote:
    if($('#rating_label').html() == 'Rate This') {
        getRequest("/render.php?mod=site_user&action=rate&params=type~" + thingtype + "|fk_id~" + thingid + "|stars~" + rating, 'GET', true);
    }

}

// flag as inappropriate
function flagIt(id){
    if(id){
        $('<div>').dialog({
          autoOpen: true,
          position: 'center',
          modal: true,
          height: 200,
          resizable: true,
          title: '',
          open: function(){
              $(this).html('Are you sure you wish to mark this comment as inappropriate? Click OK to continue, CANCEL to cancel this request.');
              $(this).css('width','95%');
          },
                buttons: {
                    'Ok': function() {
                        $(this).dialog('close');
                    urlparams = '|path~' + window.location.pathname;
                    getRequest("/render.php?mod=site_user&action=flag&params=id~" + id + urlparams, 'GET', true);
                    },
                    'Cancel': function() {
                        $(this).dialog('close');
                    }
                }
        });


    }
}

// save rate, article, product or join a group always pass the url of the page
function SaveIt(operation,thingtype,thingid) {
    //
    urlparams = '|path~' + window.location.pathname;
    // if saved items then get the panel that is opened
    if($("#saved_panel_0").length > 0){
        urlparams += '|saveditemspanel~' + $('div').find('.panel_profile.show').attr("id");
    }
    // display the url of the current page
    getRequest("/render.php?mod=site_user&action=" + operation + "content&params=content_type~" + thingtype + "|fk_id~" + thingid + urlparams, 'GET', true);

    // change the function
    if(thingtype != 'rate'){
        if(operation == 'save') {
            // change current save button to unsave
            $('#savethisli').removeClass('save').addClass('unsave');
            var savescript = $('#savethisli');
            savescript.html(savescript.html().replace(/\'save\'/g, '\'unsave\''));
        }
        if(operation == 'unsave') {
            // change current unsave button to save
            $('#savethisli').removeClass('unsave').addClass('save');
            var savescript = $('#savethisli');
            savescript.html(savescript.html().replace(/\'unsave\'/g, '\'save\''));
        }
    }

    // now change just the label displayed
    switch(thingtype){
        case 'rate':
            break;
        case 'group':
            if(operation == 'save') {
                $('#savethishref').html('Leave')
            } else {
                $('#savethishref').html('Join');
            }
            break;
        default:
            if(operation == 'save') {
                $('#savethishref').html('Unsave')
            } else {
                $('#savethishref').html('Save');
            }
            break;
    }

}

function comment() {
    getRequest("/render.php?mod=site_user&action=" + operation + "content&params=content_type~" + thingtype + "|fk_id~" + thingid, 'GET', true);
}

function goalContact(){
    getRequest('/render.php?mod=goals&action=core&params=request~contact|incGoals~yes', 'GET', true);
}
function validateItem(action,id){
    ok_2_process = 1;
    urlvars = '';
    if($("#content_type").length > 0){
        type = $("#content_type").val();
    } else {
        type = '';
    }
    switch(action){
        case 'chkTitle':
            urlvars = '/render.php?mod=rendRequest&action=core&params=request~chkTitle|type~' + type + '|value~' + $('#' + id).val();
            break;
        default:
            break;
    }
    if(ok_2_process == 1 && urlvars != ''){
        getRequest(urlvars,'GET',true);
    }
}
function getRequest(request_Obj,request_type,bypassEncoding){
    PostGetInd = request_type ? request_type : 'POST';
    encodeIt = bypassEncoding ? bypassEncoding : '0';
    errors_occured = false;
    call_was_successful = false;
    response_area = '';
    display_messages = false;
    display_dialog_delete = false;
    display_dialogReload_message = false;
    display_dialog_preview = false;
    execFunc_array = new Array();
    dialog_id = '';   // id of the dialog box to open
    if(PostGetInd == 'GET'){
        var encoded_params = L9_getUrlVars(request_Obj,encodeIt);
    } else if(PostGetInd == 'POST'){
        if($('#' + request_Obj).attr('action').length > 0){
            ajax_action = $('#' + request_Obj).attr('action');
        } else {
            ajax_action = '/render.php';
        }
        var encoded_params = $('#' + request_Obj).serialize();
    } else {
        return;
    }
    // finalize action
    if(ajax_action == ''){
        ajax_action = '/render.php';
    } else {
        if(ajax_action.substr(0,1) != '/'){
            ajax_action = '/' + ajax_action;
        }
    }

    // show progress
    $('.ajaxInProgress_wrapper').show();

    // disable the submit button
    $('#' + request_Obj + ' :input[type="submit"]').attr('disabled','disabled');

    $.ajax({
        type: PostGetInd,
        async: false,
        url: ajax_action,
        data: encoded_params,
        timeout: 15000,
        cache: false,
        async: false,
        success: function(data){
            call_was_successful = true;
            response_area=data;
            resp_array = response_area.split('||'); // first slot contains 0 = successful, 1 = error

            for(i=0;i<resp_array.length;i++){
                if(resp_array[i]){
                    keyval = resp_array[i];
                    if(keyval.indexOf('~~~') > 0){
                        keyval_array = keyval.split('~~~');
                        if(keyval_array[0]){
                            keyname = keyval_array[0];
                        } else {
                            keyname = '';
                        }
                        if(keyval_array[1]){
                            keyvalue = keyval_array[1];
                        } else {
                            keyvalue = '';
                        }
                        switch (keyname){
                            case 'removeClass':
                                temp_array = keyvalue.split('::');
                                objID = temp_array[0];
                                classname = temp_array[1];
                                if($('#' + objID).length > 0){
                                    $('#' + objID).removeClass(classname);
                                }
                                break;
                            case 'addClass':
                                temp_array = keyvalue.split('::');
                                objID = temp_array[0];
                                classname = temp_array[1];
                                if($('#' + objID).length > 0){
                                    if(!$('#' + objID).hasClass(classname)){
                                        $('#' + objID).addClass(classname);
                                    }
                                }
                                break;
                            case 'closeModal':
                                if(keyvalue == '1'){
                                    $('#modal_dialog').dialog("close");
                                }
                                break;
                            case 'closeDialogDelete':
                                if(keyvalue == '1'){
                                    $('#dialog_delete').dialog('close');
                                }
                                break;

                            case 'message':
                                temp_array = keyvalue.split('::');
                                objID = temp_array[0];
                                objValue = temp_array[1];
                                if($('#' + objID).length > 0){
                                    $('#' + objID).html(objValue);
                                }
                                break;
                            case 'dialog_content':
                                $('#dialog_content').html(keyvalue);
                                display_messages = true;
                                break;
                            case 'dialog_delete_content':
                                $('#dialog_delete_content').html(keyvalue);
                                display_dialog_delete = true;
                                break;
                            case 'dialogReload_content':
                                $('#dialogReload_content').html(keyvalue);
                                display_dialogReload_message = true;
                                break;
                            case 'openmodal':
                                if(keyvalue == 'message'){
                                    $( "#modal_dialog" ).dialog( {
                                            autoOpen: false,
                                            position: 'center',
                                            modal: true,
                                            height: 500,
                                            width: 400,
                                            buttons: {
                                                'Ok': function() {
                                                    $(this).dialog('close');
                                                }
                                            }
                                        });

                                        $('#modal_dialog').dialog("open");
                                }
                                // remove Ok button if not wanted
                                if(keyvalue == 'confirm') {
                                    $( "#modal_dialog" ).dialog( {
                                            autoOpen: false,
                                            position: 'center',
                                            modal: true,
                                            height: 500,
                                            width: 400,
                                            buttons: {
                                                'Ok': function() {
                                                    $(this).dialog('close');
                                                },
                                                'Cancel': function() {
                                                    $(this).dialog('close');
                                                }
                                            }
                                        });

                                        $('#modal_dialog').dialog("open");
                                }
                                break;
                            case 'execFunc':
                                temp_array = keyvalue.split('::');
                                functionName = temp_array[0];
                                parameters = decodeURIComponent(temp_array[1]);
                                temp_field = functionName + "('" + parameters + "')";
                                execFunc_array.push(temp_field);
                                break;
                            case 'replaceWith':
                            case 'append':
                                temp_array = keyvalue.split('::');
                                elementID = temp_array[0];
                                html_block = temp_array[1];
                                if(keyname == 'append'){
                                    $('#' + elementID).append(html_block);
                                } else {
                                    $('#' + elementID).replaceWith(html_block);
                                }
                                break;
                            case "prepend2ID":
                                temp_array = keyvalue.split('::');
                                objID = temp_array[0];
                                html_block = temp_array[1];
                                if($('#' + objID).length > 0){
                                    $('#' + objID).prepend(html_block);
                                }
                                break;
                            case 'dialog_preview_title':
                                $( "#dialog_preview" ).dialog( "option", "title", keyvalue );
                                break;
                            case 'gen_dialog_title':
                                $( "#gen_dialog" ).dialog( "option", "title", keyvalue );
                                break;
                            case 'popUpMech':
                                // this is used internally for the callPopup() system
                                display_dialog_preview = true;
                               $( "#dialog_preview" ).dialog( "option", "buttons", {
                                    'Ok': function() {
                                      // get process function name and call it
                                      funcName = getPopupFunction();
                                      eval(funcName+'(\'ok\');');
                                    },
                                    'Cancel': function() {
                                      // get process function name and call it
                                      funcName = getPopupFunction();
                                      eval(funcName+'(\'cancel\');');
                                    }
                                });
                                // remove Ok button if not wanted
                                if(keyvalue.indexOf('ok') == -1) {
                                    $('#dialog_preview').dialog('removebutton', 'Ok');
                                }
                                // remove Cancel button if not wanted
                                if(keyvalue.indexOf('cancel') == -1) {
                                    $('#dialog_preview').dialog('removebutton', 'Cancel');
                                }
                                $('#dialog_preview').dialog( "option", "resizable", true);

                                break;
                            case 'popUpMech_v2':
                                // this is used internally for the callPopup() system
                               $( "#dialog_preview" ).dialog( "option", "buttons", {
                                    'Ok': function() {
                                      // get process function name and call it
                                      funcName = getPopupFunction();
                                      eval(funcName+'(\'ok\');');
                                    },
                                    'Restore': function() {
                                      // get process function name and call it
                                      funcName = getPopupFunction();
                                      eval(funcName+'(\'restore\');');
                                    },
                                    'Delete': function() {
                                      // get process function name and call it
                                      funcName = getPopupFunction();
                                      eval(funcName+'(\'delete\');');
                                    },
                                    'Cancel': function() {
                                      // get process function name and call it
                                      funcName = getPopupFunction();
                                      eval(funcName+'(\'cancel\');');
                                    }
                                });
                                // remove Ok button if not wanted
                                if(keyvalue.indexOf('ok') == -1) {
                                    $('#dialog_preview').dialog('removebutton', 'Ok');
                                }
                                // remove Restore button if not wanted
                                if(keyvalue.indexOf('restore') == -1) {
                                    $('#dialog_preview').dialog('removebutton', 'Restore');
                                }
                                // remove Restore button if not wanted
                                if(keyvalue.indexOf('delete') == -1) {
                                    $('#dialog_preview').dialog('removebutton', 'Delete');
                                }
                                // remove Cancel button if not wanted
                                if(keyvalue.indexOf('cancel') == -1) {
                                    $('#dialog_preview').dialog('removebutton', 'Cancel');
                                }
                                $('#dialog_preview').dialog( "option", "resizable", true);
                                $('#dialog_preview').dialog("open");
                                break;
                            case 'popUpMech_v3':
                                // this is used internally for the callPopup() system
                                // parameter is dialog id::comma list of buttons to include
                                temp_array = keyvalue.split('::');
                                dialog_id = temp_array[0];
                                buttons = decodeURIComponent(temp_array[1]);
                               $( "#" + dialog_id).dialog( "option", "buttons", {
                                    'Ok': function() {
                                      // get process function name and call it
                                      funcName = getPopupFunction();
                                      eval(funcName+'(\'ok\');');
                                    },
                                    'Cancel': function() {
                                      // get process function name and call it
                                      funcName = getPopupFunction();
                                      eval(funcName+'(\'cancel\');');
                                    }
                                });
                                // remove Ok button if not wanted
                                if(keyvalue.indexOf('ok') == -1) {
                                    $( "#" + dialog_id).dialog('removebutton', 'Ok');
                                }
                                // remove Cancel button if not wanted
                                if(keyvalue.indexOf('cancel') == -1) {
                                    $( "#" + dialog_id).dialog('removebutton', 'Cancel');
                                }
                                break;
                            case 'triggerClick':
                                $('#' + keyvalue).trigger('click');
                                break;
                            default:
                                if($('#' + keyname).length > 0){
                                    if($('#' + keyname).is('input') || $('#' + keyname).is('textarea')){
                                        $('#' + keyname).val(keyvalue);
                                    } else if($('#' + keyname).is('select')){
                                        if(keyvalue == 'reset'){
                                            $('#' + keyname + ' option:selected').attr('selected', false);
                                        }
                                    } else {
                                        $('#' + keyname).html(keyvalue);
                                    }
                                }
                                break;
                        }
                    }
                }
            }
        },

        error: function(XMLHttpRequest, textStatus, errorThrown){
          $('#dialog').text("We're sorry. Your request could not be processed. Please try again later.");
          $('#dialog').dialog("open");
          call_was_successful = false;
          errors_occured = true;
        }
    });
    // end progress indicator
    $('.ajaxInProgress_wrapper').hide();

    // enable the submit button if it still exists
    if($('#' + request_Obj + ' :input[type="submit"]').length > 0){
        $('#' + request_Obj + ' :input[type="submit"]').attr('disabled','');
    }

    if(display_messages){
        $('#dialog').dialog("open");
        display_messages = false;
    }
    if(display_dialog_delete){
        $('#dialog_delete').dialog("open");
        display_dialog_delete = false;
    }

    if(display_dialogReload_message){
        $('#dialogReload').dialog("open");
        display_dialogReload_message = false;
    }

    if(display_dialog_preview){
        $('#dialog_preview').dialog("open");
        display_dialog_preview = false;
    }

    // now run any functions that may have been requested
    if(execFunc_array.length > 0){
        for(i=0;i<execFunc_array.length;i++){
            func2Execute = execFunc_array[i];
            eval(func2Execute);
        }
    }
    if(dialog_id != ''){
        $('#' + dialog_id).dialog("open");
    }

}

// will reload or redirect based upon the passed url
function reloadPage(href){
    if(href == 'reload'){
        window.location.reload();
    } else {
        reload_href = $('#pg2load').html().replace(/\&amp;/g,'&');
        $('#pg2load').html('');
        window.location.href = reload_href;
    }

}

function busFilter(){
    if ($("#bus_filter option:selected").length > 0 && $("#bus_filter option:selected").val().length > 0  ){
        tmp_array = window.location.href.split('?');
        href = tmp_array[0] + '?filter=' + $("#bus_filter option:selected").val();
        $('#pg2load').html(href);
        reloadPage('pg');
    } else {
        tmp_array = window.location.href.split('?');
        href = tmp_array[0];
        $('#pg2load').html(href);
        reloadPage('pg');
    }
}

// the second parameter indicates whether to remove the filter and type parameter
function L9_getUrlVars(urlObj,encodeInd){
    name_value_array = new Array();
    // get just the url
    ajax_action = urlObj.slice(0,urlObj.indexOf('?'));
    // now get just the parameters
    var param_array = urlObj.slice(urlObj.indexOf('?') + 1).split('&');

    // encode any parameters
    for(var i = 0; i < param_array.length; i++){
      tmp_array = param_array[i].split('=');

      if(encodeInd == '1'){
          name_value_array.push(encodenamevalue(tmp_array[0],tmp_array[1]));
      } else {
          name_value_array.push(tmp_array[0],tmp_array[1]);
      }
    }
    return name_value_array.join("&");
}

function encodenamevalue(pname,pvalue){
    var wrk_param = encodeURIComponent(pname);
    wrk_param += "=";
    wrk_param += encodeURIComponent(pvalue);
    return wrk_param;
}


function ToggleRegistrationType(toggleto) {
  switch(toggleto) {
    case 'bus':
        // require business fields:
        $('#bus_name').addClass("required");
        $('#bus_name').addClass("valid");
        $('#bus_location_id').addClass("required");
        $('#phone_number').addClass("required");

        // un-require individual fields:
        $('#ind_name').removeClass("required");
        $('#ind_name').rules("remove", "required");

        $('.is_individual').hide();
        $('.is_business').show();
        $('#registration_ind').hide();
        $('#registration_biz').slideDown(1000);
        destroytinyMCE();
        initTinyMCE();
        break;
    case 'ind':
        // un-require business fields:
        $('#bus_name').removeClass("required");
        $('#bus_name').removeClass("valid");
        $('#bus_location_id').removeClass("required");
        $('#phone_number').removeClass("required");

        // require individual fields:
        $('#ind_name').addClass("required");
        $('#ind_name').rules("add", "required");

        $('.is_individual').show();
        $('.is_business').hide();
        $('#registration_biz').hide();
        $('#registration_ind').slideDown('slow');
        destroytinyMCE();
        break;
    case 'delete':
        $(':input[.required]').removeClass("required");
        break;
    default:
        // un-require business fields:
        $('#bus_name').removeClass("required");
        $('#bus_name').removeClass("valid");
        $('#bus_location_id').removeClass("required");
        $('#phone_number').removeClass("required");

        // require individual fields:
        $('#ind_name').addClass("required");
        $('#ind_name').rules("add", "required");

        $('.is_individual').show();
        $('.is_business').hide();
        $('#registration_biz').hide();
        $('#registration_ind').slideDown('slow');
        destroytinyMCE();
        initTinyMCE();
        break;
  }
}


function reloadImg(id) {
   var obj = document.getElementById(id);
   var src = obj.src;
   var pos = src.indexOf('?');
   if (pos >= 0) {
      src = src.substr(0, pos);
   }
   var date = new Date();
   obj.src = src + '?v=' + date.getTime();
   return false;
}


function rateAlert(src){

    $('<iframe id="raAlert" src="' + src + '" />').dialog({
              autoOpen: true,
              width: 600,
              minHeight: 800,
              modal: true,
              resizable: true,
              open: function(){
                  $(this).css('width','98%');
              },
              buttons: {
                  'Cancel': function() {
                      $(this).dialog('close');
                  }
              }
    })
}

function openCalc(src){

    $('<iframe id="calc" src="' + src + '" />').dialog({
              autoOpen: true,
              width: 750,
              minHeight: 500,
              modal: true,
              resizable: true,
              open: function(){
                  $(this).css('width','98%');
              },
              buttons: {
                  'Cancel': function() {
                      $(this).dialog('close');
                  }
              }
    })
}

// functions to limit submitting of the form to one time
function setoneclick(func2invoke){
	num_of_submits = num_of_submits + 1;
	if(num_of_submits > 1){
		return false;
	}
	eval(func2invoke);
}

function valSeminarStep2(){
    var do_not_process = 0;
    var elements_in_error = '';

    encoded_params = readynamevalue(document.getElementById("seminarSignupform"));

    $.ajax({
        type: "POST",
        async: false,
        url: "/seminar_sign_up_2.php",
        data: encoded_params,
        success: function(response){
            document.getElementById("SemSignUp").innerHTML = response;
        }, // end of success
        error: function(response){
            alert("We're Sorry, The Seminar system is currently unavailable for sign-up.");
         }
    });

    resetoneclick();
}

function readynamevalue(pform){
    param_array = new Array();
    localtheform = pform;
    for(i=0;i<localtheform.elements.length;i++){
        var the_element = localtheform.elements[i];
        switch (the_element.type){
            // bypass buttons
            case "button":
            case "submit":
            case "reset":
                break;
            // checkboxes/radio buttons - only return the value if the control is checked
            case "checkbox":
            case "radio":
                if(!the_element.checked){
                    break;
                }
            // text/hidden/password all return the values
            case "text":
            case "hidden":
            case "password":
                param_array.push(encodenamevalue(the_element.name,the_element.value));
                break;
            // everything else
            default:
                switch(the_element.tagName.toLowerCase()){
                    case "select":
                    if(the_element.selectedIndex != -1){
                      list_of_items = '';
                        for(idx=0;idx<the_element.options.length;idx++){
                            if(the_element.options[idx].selected == true){
                                if(list_of_items != ''){
                                    list_of_items += ',' + the_element.options[idx].value;
                                } else {
                                    list_of_items += the_element.options[idx].value;
                                }
                            }
                        }
                        param_array.push(encodenamevalue(the_element.name,list_of_items));
                    }
                    break;
                    default:
                        param_array.push(encodenamevalue(the_element.name,the_element.value));
                        break;
                }
        }
    }
    return param_array.join("&");
}

function ValidateFormProt(fks,fku) {

    response_area = $.ajax({
          url: "/scripts/ajax_fpvalidate.php?fks=" + fks + "&fku=" + fku,
          global: false,
          type: "GET",
          dataType: "html",
          async:false
       }
    ).responseText;

    //alert('got ('+response_area+')');

    if(response_area.substr(0,5) == 'VALID'){
        return true;
    }
    if(response_area.substr(0,7) == 'INVALID'){
        return false;
    }
    if(response_area.substr(0,5) == 'ERROR'){
        // return a -1 to indicate error
        return -1;
    }

}


function SyncContentToImage() {
  var imageHeight = $("#PostDetailImage").height();
  $('#content_area_div1').css(($.browser.msie && $.browser.version < 7 ? '' : 'min-') + 'height', imageHeight + 'px');
}

function validatecontact(){
    $('.ajaxInProgress_wrapper').show();

    var encoded_params = $('#contactform').serialize();

    $.ajax({
        type: "POST",
        async: false,
        url: "/php/process/ajax_proccontact.php",
        data: encoded_params,
        success: function(data){
            response_area=data;
            resp_array = response_area.split('~'); // first slot contains 0 = successful, 1 = error
            document.getElementById("contactmsg").innerHTML = resp_array[1];
            if(resp_array[0] == '0'){
                document.getElementById("contact_div").innerHTML = '';
            }
        },
        error: function(data){
          alert("We're sorry, your email could not be sent. Please try another method of contact.");
        }
    });

    // end progress indicator
    $('.ajaxInProgress_wrapper').hide();
}

// sanitize input
function isEmail(string) {
	err_num = 0;
	if(string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]{2,6}$/)!= -1){
		return true;
	} else {
		err_num = 3;
		return false;
	}
}
function isillegalChars(string){
	var illegalChars = /[^\.\-&,\(\)_ ''a-zA-Z0-9[\s]]/; // allow only letters, numbers, spaces, underscores, hyphens,periods and apostrophe
	if(illegalChars.test(string)){
		err_num = 4;
		return true; // illegal characters found
	} else {
		return false; // no illegal characters found
	}
}
function isNumeric(PassField) {
	var legalNum = /\D/; // allow only numbers
	if (PassField.length == 0){
		return false;
	}
	if(legalNum.test(PassField)) {
		return false; // non numeric character found
	} else {
		return true;
	}
}
function isAllSpaces(inputValue) {
  if(inputValue.search(/^\s*$/) != -1) {
    // the string contains just spaces or is empty
    return true;
  } else {
    // valid input
    return false;
  }
}
// functions to limit submitting of the form to one time
function setoneclick(func2invoke){
	num_of_submits = num_of_submits + 1;
	if(num_of_submits > 1){
		return false;
	}
	eval(func2invoke);
}
function resetoneclick(){
	num_of_submits = 0;
	return;
}

function initAutoClasses() {
  $('.useDatePicker').datepicker({dateFormat:'yy-mm-dd'});
  $('.useTimePicker').timepicker({timeFormat:'hh:mm:ss'});
  $('.useDateTimePicker').datetimepicker({dateFormat:'yy-mm-dd',timeFormat:'hh:mm:ss',ampm:false,stepMinute:5});
  $( ".isSortable" ).sortable({ cursor: 'move', scroll: true, axis: 'y', helper: 'clone' });
  $( ".isSortable" ).disableSelection();
}
// initializes the datepicker widget
function initialize_datepicker(id){
    $("#" + id).datepicker();

}


// save the tinymce content to the text area
function postGoalComment(){
    $("#comment_title").rules("add", {
       required: true
    });
    $("#comment").rules("add", {
       required: function () {
          return valCommentField();
       }
    });

    if($("#goalForm").validate().element("#comment_title") && $("#goalForm").validate().element("#comment")){
        request_OBJ = '/render.php?mod=goals&action=core&params=request~postcomment|id~' + $('#goal_id').val() + '|num_comments_displayed~' + $('#num_comments_displayed').val() + '|comment_ids_displayed~' + $('#comment_ids_displayed').val() + '|comment_title~' + $('#comment_title').val() + '|comment~' + $('#comment').val();
        getRequest(request_OBJ, 'GET', true);
    }

    $('#comment_title').rules("remove");
    $('#comment').rules("remove");

}
// limits the number of characters that can be added to a text box
function limitText(elementID,limitNum) {
	if($('#' + elementID).val().length > limitNum) {
	    limitVal = $('#' + elementID).val().substring(0, limitNum);
		$('#' + elementID).val(limitVal);
	} else {
	    countVal = limitNum - $('#' + elementID).val().length;
		$('#' + elementID + '_count').html(countVal);
	}
}
