jQuery.fn.addCssFile = function(css) {
  return this.each(
    function(){
      if (jQuery(this).html().indexOf(css) < 0)
        jQuery(this).append("<link rel=stylesheet type=text/css href='" + css + "' media=screen,print>");
    }
  );
};

jQuery.fn.addJsFile = function(js) {
  return this.each(
    function(){
      if (jQuery(this).html().indexOf(js) < 0)
        jQuery(this).append("<script type=text/javascript src='" + js + "'></script>");
    }
  );
};


jQuery.fn.getCss = function(csselem, asNumber) {
  var res = "";
  var elem = jQuery(this).get()[0];
  if (elem.style[csselem] && elem.style[csselem].length > 0)
    res = elem.style[csselem];
  else {
    var classes = elem.className.split(" ");
    var cssRules = (document.all ? "rules" : "cssRules");
    for (var i=0; i < document.styleSheets.length && res.length == 0; i++){
      for (var j=0; j < document.styleSheets[i][cssRules].length && res.length == 0; j++) {
        var sel = document.styleSheets[i][cssRules][j].selectorText;
        if (sel == "#" + elem.id)
          res = document.styleSheets[i][cssRules][j].style[csselem];
        else {
          for (var k=0; k < classes.length; k++)
            if (sel == "." + classes[k]) res = document.styleSheets[i][cssRules][j].style[csselem];
        }
      }
    }
  }
  if (asNumber) {
    if (res.length == 0) return 0;
    return parseInt(res.substring(0, res.length-2));
  }
  else
    return res;
};

jQuery.validateEmail = function(email) {
  var emailRegExp = new RegExp("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$", "i");
  return emailRegExp.test(email);
}
