var CS2 = {
  version : '2.1.0',
  quickPop : 500,
  longPop : 1000,
  countDownSpeed : 400,
  schoolVerbage: function(){return currentSchool.Type == "CyberSchool 2.0" ? "School" : "Site"},
  districtVerbage: function(){return currentSchool.Type == "CyberSchool 2.0" ? "District" : "Site"},
  schoolsVerbage: function(){return currentSchool.Type == "CyberSchool 2.0" ? "Schools" : "SubSites"},
  schoolSubsiteVerbage: function(){return currentSchool.Type == "CyberSchool 2.0" ? "School" : "SubSite"},
  schoolStoreVerbage: function(){return currentSchool.Type == "CyberSchool 2.0" ? "School" : "Store"},
  cyberschoolVerbage: function(){return currentSchool.Type == "CyberSchool 2.0" ? "CyberSchool" : "eBusiness"},
  cyberschoolSiteVerbage: function(){return currentSchool.Type == "CyberSchool 2.0" ? "CyberSchool" : "Site"},
  teacherVerbage: function(){return currentSchool.Type == "CyberSchool 2.0" ? "Teacher" : "a Moderator"},
  aTeacherVerbage: function(){return currentSchool.Type == "CyberSchool 2.0" ? "a Teacher" : "a Moderator"},
  studentVerbage: function(){return currentSchool.Type == "CyberSchool 2.0" ? "Student" : "Member"},
  studentsVerbage: function(){return currentSchool.Type == "CyberSchool 2.0" ? "Students" : "Members"},
  isEbusiness: function(){return currentSchool.Type == "eBusiness 2.0"},
  isCyberSchool: function(){return currentSchool.Type == "CyberSchool 2.0"},
  isCyberDesk: function(){return currentSchool.Type == "CyberDesk"}
};

Ext.Ajax.defaultHeaders = {
  'Created-By': 'da404lewzer',
  'Powered-By': 'CyberSchool v' + CS2.version
};

Ext.override(Ext.tree.TreeNode, {
  clone: function() {
    var atts = this.attributes;
    atts.id = Ext.id(null, "ynode-");
    var clone = new Ext.tree.TreeNode(Ext.apply({}, atts));
    clone.text = this.text;
    for(var i=0; i<this.childNodes.length; i++){
      clone.appendChild(this.childNodes[i].clone());
    }
    return clone;
  }
});

Ext.apply(Ext.form.VTypes, {
  username:  function(v) {
      return /^[a-zA-Z]{1}[0-9a-zA-Z_]+$/.test(v);
  },
  usernameText: 'Usernames may contain uppercase, lowercase, numbers, and underscores. Usernames must start with a letter.',
  usernameMask: /[0-9a-zA-Z_]/i,
  password:  function(v) {
      return /^[0-9a-zA-Z!@#\$%\^&\*\(\)\-_=\+]+$/.test(v);
  },
  passwordText: 'Password may contain uppercase, lowercase, numbers, or the special characters: !@#$%^&*()-_=+',
  passwordMask: /[0-9a-zA-Z!@#\$%\^&\*\(\)\-_=\+]/i
});

function getProfileImage(id){
  return "/images/getProfilePicture.cfm?id="+id+"&t="+ parseInt(new Date().getTime().toString().substring(0, 10));
}

Ext.override(Ext.layout.CardLayout, {
    renderItem: function(c){
        if(!this.deferredRender && c && c.doLayout && !c.rendered){
            c.forceLayout = true;
        }
        Ext.layout.CardLayout.superclass.renderItem.apply(this, arguments);
    }
});
