
Form.check = function(form) {
	var isValid = true;

	$(form).getElements().each(function(e) {
		if(e.hasClassName('required') && !e.present())
		{
			new Effect.Shake(e);
			isValid = false;
		}
	});
	
	if($(form).passwd && $(form).passwd_conf)
		if($F($(form).passwd) != $F($(form).passwd_conf))
		{
			new Effect.Shake($(form).passwd);
			new Effect.Shake($(form).passwd_conf);
			isValid = false;
		}
			
	
	return isValid;
};

Form.checkAndSend = function(e) {
	if($(e))
		var form = $(e);
	else if(typeof(e) != 'string')
	{
		Event.stop(e);
		var form = Event.element(e).up('form');
	}
	else
		alert('error');

	if(!Form.check(form))
		return false;
	else
		$(form.submit());
};

Position.getWindowSize = function(w) {
        w = w ? w : window;
        var width = w.innerWidth || (w.document.documentElement.clientWidth || w.document.body.clientWidth);
        var height = w.innerHeight || (w.document.documentElement.clientHeight || w.document.body.clientHeight);
        return [width, height];
};


/* -----------------------------------*/
/* --->>> onDOMReady Extension <<<----*/
/* -----------------------------------*/


Object.extend(Event, {
  _domReady : function() {
    if (arguments.callee.done) return;
    arguments.callee.done = true;

    if (this._timer)  clearInterval(this._timer);
    
    this._readyCallbacks.each(function(f) { f(); });
    this._readyCallbacks = null;
},
  onDOMReady : function(f) {
    if (!this._readyCallbacks) {
      var domReady = this._domReady.bind(this);
      
      if (document.addEventListener)
        document.addEventListener("DOMContentLoaded", domReady, false);
        
        /*@cc_on @*/
        /*@if (@_win32)
            document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
            document.getElementById("__ie_onload").onreadystatechange = function() {
                if (this.readyState == "complete") domReady(); 
            };
        /*@end @*/
        
        if (/WebKit/i.test(navigator.userAgent)) { 
          this._timer = setInterval(function() {
            if (/loaded|complete/.test(document.readyState)) domReady(); 
          }, 10);
        }
        
        Event.observe(window, 'load', domReady);
        Event._readyCallbacks =  [];
    }
    Event._readyCallbacks.push(f);
  }
});



