var Browser = new Object();

Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument!='undefined');
Browser.isIE = window.ActiveXObject ? true : false;
Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox")!=-1);
Browser.isSafari = (navigator.userAgent.toLowerCase().indexOf("safari")!=-1);
Browser.isOpera = (navigator.userAgent.toLowerCase().indexOf("opera")!=-1);

var Util = new Object();

Util.trim = function( text ) 
{
	return text.replace(/^\s*|\s*$/g, "");
}

Util.isNumber = function(val)
{   
	if(Util.isInt(val))
		return true;
	var re = /^(\d+)[\.]+(\d+)$/;
	
	if (re.test(val)) {
		if(RegExp.$1==0 && RegExp.$2==0) 
			return false;
		return true;
	} 
	else 
		return false;
}

Util.isInt = function(val) 
{
    var reg = /^[0-9]\d*$/;
    return reg.test(val);
}

Util.doRound = function(x, places) 
{  
	return Math.round(x * Math.pow(10, places)) / Math.pow(10, places);
}

Util.isEmail = function( email )
{
    var reg1 = /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/;

    return reg1.test( email );
}

Util.fixEvent = function(e) 
{
    var evt = (typeof e == "undefined") ? window.event : e;
    return evt;
}

Util.srcElement = function(e)
{
    if (typeof e == "undefined") e = window.event;
    var src = document.all ? e.srcElement : e.target;

    return src;
}

Util.isTime = function(val)
{
	var reg = /^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}$/;

	return reg.test(val);
}

Util.getRadioValue = function(radioObj)
{
	radioObj = document.getElementsByName(radioObj);
		
	var radioLength = radioObj.length;
	if(radioLength == undefined)
	{
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	}
	
	for(var i = 0; i < radioLength; i++) 
	{
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	
	return "";
}

Util.redirect = function(url)
{
	window.location.href = url;
}

Util.UpdateFCKEditorFormValue = function()
{
	for ( i = 0; i < parent.frames.length; ++i )
	if ( parent.frames[i].FCK )
		parent.frames[i].FCK.UpdateLinkedField();
}

// Setting cookies
function set_cookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure )
{
	var cookie_string = name + "=" + escape ( value );
	
	if (exp_y) //delete_cookie(name)
	{
		var expires = new Date ( exp_y, exp_m, exp_d );
		cookie_string += "; expires=" + expires.toGMTString();
	}
	
	if (path) cookie_string += "; path=" + escape ( path );
	if (domain) cookie_string += "; domain=" + escape ( domain );
	if (secure) cookie_string += "; secure";
	
	document.cookie = cookie_string;
}

// Retrieving cookies
function get_cookie(cookie_name)
{
	var results = document.cookie.match(cookie_name + '=(.*?)(;|$)');
	if (results) return (unescape(results[1]));
	else return null;
}

// Delete cookies 
function delete_cookie( cookie_name )
{
	var cookie_date = new Date ( );  // current date & time
	cookie_date.setTime ( cookie_date.getTime() - 1 );
	document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}

function ajax_fupdater(container,url,form)
{
	var oncomplete = arguments[3] ? arguments[3] : '';

	if(oncomplete.length > 0)
	{
		new Ajax.Updater(container,url, 
			{	method: "post",	parameters:Form.serialize(form),
				onComplete: function(transport)	{eval(oncomplete)}	}	);
	}
	else
	{
		new Ajax.Updater(container,url, 
			{	method: "post",	parameters:Form.serialize(form)	}	);
	}
	$(form).disable();
}

function ajax_pupdater(container,url)
{
	var parameter = arguments[2] ? arguments[2] : '';
	var oncomplete = arguments[3] ? arguments[3] : '';
	
	if(oncomplete.length > 0)
	{
		new Ajax.Updater(container,url, 
			{	method: "post",	postBody: parameter,
				onComplete: function(transport)	{eval(oncomplete)}	}	);
	}
	else
	{
		new Ajax.Updater(container,url, 
			{	method: "post",	postBody: parameter	}	);
	}
}

function ajax_prequest(url)
{
	var parameter = arguments[1] ? arguments[1] : '';
	var oncomplete = arguments[2] ? arguments[2] : '';
	
	if(oncomplete.length > 0)
	{
		new Ajax.Request(url, 
			{	method: "post",	postBody: parameter,
				onComplete: function(transport)	{eval(oncomplete)}	}	);
	}
	else
	{
		new Ajax.Request(url, 
			{	method: "post",	postBody: parameter	}	);
	}
}

function ajax_frequest(url,form)
{
	var oncomplete = arguments[2] ? arguments[2] : '';
	
	if(oncomplete.length > 0)
	{
		new Ajax.Request(url, 
			{	method: "post",	parameters:Form.serialize(form),
				onComplete: function(transport)	{eval(oncomplete)}	}	);
	}
	else
	{
		new Ajax.Request(url, 
			{	method: "post",	parameters:Form.serialize(form)	}	);
	}
	$(form).disable();
}

function show_msg(id,msg)
{
	if(msg.length > 0)
		$(id).innerHTML = msg;
	$(id).style.display = 'block';
}

function set_empty(id)
{
	$(id).innerHTML = '';
}

Util.toggle_checkbox = function(src,id)
{
	var cb = document.getElementsByName(id+'id[]');
	for(var j = 0;j < cb.length;j++)
		cb[j].checked = src.checked;
		
	src.checked && cb.length > 0 ? $(id+'btn').enable() : $(id+'btn').disable();
}

Util.toggle_checkbtn = function(id)
{
	var cb = document.getElementsByName(id+'id[]');
	
	for(var i = 0;i < cb.length;i++)
	{
		if(cb[i].checked)
		{
			$(id+'btn').enable();
			return;
		}
	}
	
	$(id+'btn').disable();
}

Util.toggle = function(id)
{
	($(id).style.display == 'none' || $(id).style.display == '') 
		? $(id).style.display = 'block' : $(id).style.display = 'none';
}

Util.htmlEncode = function(text) 
{
	return text.replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
}
