﻿var meta =
    {
        is_safari_2_or_lower: function() {
            if ($.browser.safari) {
                var version = $.browser.version;
                var pos_after_major_version = version.indexOf('.');
                if (pos_after_major_version > 0) {
                    var major_version = version.substring(0, pos_after_major_version);
                    return major_version < 500; // Safari 1.x, 2.x
                }
            }
            return false;
        },
        
        get_query_string: function( name )
        {
          name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
          var regexS = "[\\?&]"+name+"=([^&#]*)";
          var regex = new RegExp( regexS );
          var results = regex.exec( window.location.href );
          if( results == null )
            return "";
          else
            return results[1];
        },

        standard_corner_effect: " 8px transparent ",

        body_size: 1000,

        is_ie6: function() {
            if ($.browser.msie && $.browser.version == 6) {
                return true;
            }
            else return false;
        },

        handle_safari_2_or_lower: function() {

            if (meta.is_safari_2_or_lower()) {
                // Here we hide search area and insert proprietary Apple search box after it.
                $(".search-area").css("display", "none");
                $(".search-area").each(function() {
                    var area = $(this);
                    var area_input = area.find('input');
                    var mac_search_field_id = "mac_" + area_input.attr('id');
                    area.after(String.format('<div class="search-area-mac">' +
                              '<input type="search" id="{0}"  autosave="dev_metacomm_search" placeholder="Search..." results="5" />' +
                              '</div>', mac_search_field_id));

                    // Copy value from hidden input text field to Apple search field
                    mac_area_input = area.next().find('input');
                    mac_area_input.val(area_input.val());

                    // When user type 'Enter' key in search field we copy its value
                    // to input text field and trigger click event, so ASP.NET picks up
                    // event handling
                    mac_area_input.keypress(function(e) {
                        if (e.which == 13) {
                            area_input.val(mac_area_input.val());
                            area_input.next().click();
                        }
                    });
                })
            }
        
        }
    }

    var flex_columns =
    {
        rewrite_items: function(set_of_items, write_to_location, columns) {

            table_starter = "<table border='0' width='100%'></table>";
            row_starter = "<tr></tr>";
            column_starter = "<td align='center'>&nbsp;</td>";

            if (set_of_items.length == 0) { return false; };
            //init table
            $(write_to_location).append(table_starter);
            var row = row_starter;

            //add columns
            for (i = 0; i < columns; i++) {
                row = $(row).append(column_starter);
            }
            
            add_row(write_to_location + " table", row, columns, set_of_items.length);
            
            var counter = 0;
            set_of_items.each(function() {
                counter++;
                
                var row_position = calc_rows(columns, counter);
                var col_position = unmod_number(columns, counter);
                
                $(write_to_location + " tr:nth-child("+row_position+") td:nth-child("+ col_position+")").append($(this));
            });
            
            function calc_rows(number_of_columns, length) {
                return Math.ceil(length / number_of_columns)
            }
            
            function add_row(table_location, row_to_add, number_of_columns, length){
                for (j = 0; j < calc_rows(number_of_columns, length); j++) {
                    $(row_to_add).clone().appendTo(table_location)
                }
            }
            
            function unmod_number(number_of_columns, number_of_items)
            {
                var mod = number_of_items % number_of_columns;
                return (mod == 0) ? number_of_columns : mod;
            }            
        }
    }


    String.prototype.endsWith = function(str)
    { return (this.match(str + "$") == str) }


