js.module('common');

var common = {
	getBrowser : function()
	{
		var uagent = navigator.userAgent.toLowerCase();
		var is_safari = ( (uagent.indexOf('safari') != -1) || (navigator.vendor == "Apple Computer, Inc.") );
		var is_opera  = (uagent.indexOf('opera') != -1);
		var is_webtv  = (uagent.indexOf('webtv') != -1);
		var is_ie     = ( (uagent.indexOf('msie') != -1) && (!is_opera) && (!is_safari) && (!is_webtv) );
		var is_ie6    = ( (uagent.indexOf('msie 6') != -1) && (!is_opera) && (!is_safari) && (!is_webtv) );
		var is_ie7    = ( (uagent.indexOf('msie 7') != -1) && (!is_opera) && (!is_safari) && (!is_webtv) );
		var is_maxthon = ( ((uagent.indexOf('myie2') != -1) || (uagent.indexOf('maxthon') != -1)) && (!is_opera) && (!is_safari) && (!is_webtv) );
		var is_ie4    = ( (is_ie) && (uagent.indexOf("msie 4.") != -1) );
		var is_moz    = ( (navigator.product == 'Gecko')  && (!is_opera) && (!is_webtv) && (!is_safari) );
		var is_ns     = ( (uagent.indexOf('compatible') == -1) && (uagent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_safari) );
		var is_ns4    =  ( (is_ns) && (parseInt(navigator.appVersion) == 4) );
		var is_kon    = (uagent.indexOf('konqueror') != -1);
		var is_chrome = uagent.indexOf('chrome') != -1;
		
		if(is_opera) return 'opera';
		if(is_moz) return 'mozilla';
		if(is_safari) return 'safari';
		if(is_ie) return 'ie';
		if(is_ie7) return 'ie7';
		if(is_4) return 'ie4';
		if(is_chrome) return 'chrome';
		
		return 'other';
	}
	,
	checkIe : function()
	{
		var uagent = navigator.userAgent.toLowerCase();
		return  (uagent.indexOf('msie') != -1);
	}
	,
	checkIe7 : function()
	{
		var uagent = navigator.userAgent.toLowerCase();
		return  (uagent.indexOf('msie 7') != -1) && (!common.checkBrowser('opera')) && (!common.checkBrowser('safari')) && (!common.checkBrowser('other'));
	}
	,
	checkBrowser : function(browser)
	{
		return common.getBrowser().toLowerCase() == browser.toString().toLowerCase();
	}
	,
	cookie : function ( name, value, expires, path, domain, secure )
	{
	  if ( name.length == 0 ) return;
	
	  if ( expires == 'never' )
	  {
	    expires = new Date();
	    expires.setTime(expires.getTime()+10 * 365 * 24 * 60 * 60 * 1000);
	  }
	
	  document.cookie = name + "=" + escape (value) +
	    ((expires) ? "; expires=" + expires.toGMTString() : "") +
	    ((path) ? "; path=" + path : "") +
	    ((domain) ? "; domain=" + domain : "") +
	    ((secure) ? "; secure" : "");
	}
	,
	getCookie : function(c_name)
	{
		if (document.cookie.length>0)
		{
			var c_start = document.cookie.indexOf(c_name + "=");
	
		  	if (c_start!=-1)
		    {
		    	c_start = c_start + c_name.length+1;
		    	var c_end = document.cookie.indexOf(";", c_start);
	
		    	if (c_end==-1)
		    	{
					c_end=document.cookie.length;
				}
	
		    	return unescape(document.cookie.substring(c_start,c_end));
		    }
		}
	}
	,
	ssp : function(e)
	{
		if(e.shiftKey)  $$('sp', '1'); return true;
	}
};

if(common.checkBrowser('mozilla'))
{
	Event.prototype.__defineGetter__("fromElement", function() 
	{
	   var node;
	   if (this.type == "mouseover")
	      node = this.relatedTarget;
	   else if (this.type == "mouseout")
	      node = this.target;
	   else
	      return null;
	   while (node.nodeType != 1) node = node.parentNode;
	   return node;
	});
	
	Event.prototype.__defineGetter__("toElement", function()
	{
	   var node;
	   if (this.type == "mouseout")
	      node = this.relatedTarget;
	   else if (this.type == "mouseover")
	      node = this.target;
	   else
	      return null;
	      
	   while (node.nodeType != 1) node = node.parentNode;
	   return node;
	});
}