
/*  --------------------------------------------    
    core.js
    com.airportbags.www
    regi e.(regi@pushhere.com, Lead Dev)
    - Requires(Location):
      [mootools-core.js]
      (script/core.js)
    --------------------------------------------  */
    
    
/*  Object: Core
    -----------------------------------------------  */
    if(typeof Detection != 'undefined') throw ('Core is already defined.');
    var Detection = {

        init: function() {
            this.name = 'Core Library';
            this.version = '0.0.1';

            this.scriptable();

            this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
            this.version = this.searchVersion(navigator.userAgent)
              || this.searchVersion(navigator.appVersion)
              || "an unknown version";
            this.OS = this.searchString(this.dataOS) || "an unknown OS";

            $$('html').addClass(this.browser + ' ' + this.version + ' ' + this.OS);
        },

        scriptable: function(other) {
         if ( other === false
              || !document.createTextNode
              || !Array.prototype.push
              || !Object.hasOwnProperty
              || !document.createElement
              || !document.getElementsByTagName
            ) {
                return false;
            }
            $$('html').addClass('scriptable');
        },

        searchString: function (data) {
          for (var i=0;i<data.length;i++)  {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
              if (dataString.indexOf(data[i].subString) != -1)
                return data[i].identity;
            }
            else if (dataProp)
              return data[i].identity;
          }
        },

        searchVersion: function (dataString) {
          var index = dataString.indexOf(this.versionSearchString);
          if (index == -1) return;
          return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
        },
        dataBrowser: [
          {
            string: navigator.userAgent,
            subString: "Chrome",
            identity: "Chrome"
          },
          {
            string: navigator.vendor,
            subString: "Apple",
            identity: "Safari",
            versionSearch: "Version"
          },
          {
            prop: window.opera,
            identity: "Opera"
          },
          {
            string: navigator.userAgent,
            subString: "Firefox",
            identity: "Firefox"
          }
        ],
        dataOS : [
          {
            string: navigator.platform,
            subString: "Win",
            identity: "Windows"
          },
          {
            string: navigator.platform,
            subString: "Mac",
            identity: "Mac"
          },
          {
            string: navigator.userAgent,
            subString: "iPhone",
            identity: "iPhone/iPod"
            },
          {
            string: navigator.platform,
            subString: "Linux",
            identity: "Linux"
          }
        ]
    };
    
    
/*  RegExp: Core
    -----------------------------------------------  */
    _email = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/;
    _zip = /^([A-Z][0-9]){5}$/;
    _phone = /[2-9]\d{2}-\d{3}-\d{4}/;
    

/*  Ready()
    -----------------------------------------------  */
    window.addEvent('domready', function() {
       Detection.init();
    });
    
    
