/*
*	Common Javascript library
*	Must go first in connection map 
*
*	ver 1.0		17.01.09/goshi	add portal object
*/

// skin images
var skin_img_dir = '/skin/img/';

//var lang_dir = '/languages/';

// user session name
var session_name = 'pphp_session';

// max cookie life - half of the year
var max_cookie_life = 60*60*24*180;

/* regular expressions for form elements */
var email_reg=/[0-9a-z_]+@[0-9a-z_^.]+.[a-z]{2,3}/i;

var url_reg=/(http):\/\/([_a-z\d\-]+(\.[_a-z\d\-]+)+)(([_a-z\d\-\\\.\/])+[_a-z\d\-\\\/])/i;

var date_reg=/\d{4}-\d{2}-\d{2}\s(\d{1,2}):(\d{1,2}):(\d{1,2})/i;

var date2_reg=/\d{4}-\d{1,2}-\d{1,2}/i;


/* function add onload event listener - it is optimize for multiple nload events on page */
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) { oldonload(); }
			func();
		}
	}
}


function domReady(i) { /* Copyright http://ajaxian.com/ */
		var u =navigator.userAgent;
		var e=/*@cc_on!@*/false;
		var st = setTimeout;
		if (/webkit/i.test(u)) {
			st(
				function() {
					var dr=document.readyState;
					if(dr=="loaded"||dr=="complete") i();
					else st(arguments.callee,10);
				},
				10
			);
		} else if ((/mozilla/i.test(u)&&!/(compati)/.test(u)) || (/opera/i.test(u))) {
			document.addEventListener("DOMContentLoaded", i, false);
		} else if (e) {(
			function(){
				var t=document.createElement('doc:rdy');
				try {
					t.doScroll('left');	i(); t=null;
				} catch(e) {st(arguments.callee,0);}
			})();
		} else addLoadEvent(i);
}

/* prepare portal object */
oPortal = function(){

	this._init();
	
};

/* declare portal prorotype */
oPortal.prototype = {
	
	mess: {},
	vars: {},
	connect_map: {},
	lang_id: null,
	lang_nick: null,
	
	_init: function(){
	
		// loading language variable
		// if it is not set - try get them throw Ajax
		this.mess = (typeof mess != "undefined" ? mess : null);

		if (window.lang_id) this.lang_id = lang_id;
		if (window.lang_nick) this.lang_nick = lang_nick;
		/*if (lang_nick == undefined && lang_nick == ''){
			
			var req = new JsHttpRequest();

			req.onreadystatechange = function (){
				if (req.readyState == 4){
					this.lang_id = true;
					this.lang_nick = true;
					this.mess = 
				}			
			}
	
			req.open('POST', this._ajx_href, true);

			req.send({'save': 1,
				'p_id': this._curr_node,
				'comment_txt': comm_data,
				'this._ppage': this._ppage});
			
		}*/
	
	},
	
	onready : function(func){
		domReady(func);
	},
	
	/* events model */
	events : {
	
		attach : function(object, event, handler, useCapture) {
			//alert('attach');
			object['_ev_'+event] = handler;
			if (object.addEventListener) {
				object.addEventListener(event, object['_ev_'+event], useCapture ? useCapture : false);
			} else if (object.attachEvent) {
				object.attachEvent('on' + event, object['_ev_'+event]);
			} else {
				object['on'+event] = object['_ev_'+event];
			}
		},
		
		remove : function (object, event, handler){
		
			if(object.removeEventListener){
				//alert('detah : '+object['_ev_'+event]);
				object.removeEventListener(event, handler ? handler : object['_ev_'+event], false);
			} else if(object.detachEvent) { 
				if (typeof handler != "undefined")
					object.detachEvent('on'+event, handler);
				else
					object.detachEvent('on'+event, object['_ev_'+event]);					
			} else object['on'+event] = false;
	
		}
	
	
	}

};


var portal = new oPortal();

