/*

Global variable scope, use this object instead of defining "worldwide global" variables

*/

var dw = {};

/*

Common, useful methods, thingies

*/

var df = {};

//-* A shorter :P getElementById
df.gid = function (obj)
{
	//It's a string, so get the object
	if (typeof obj == "string") obj = document.getElementById(obj);

	return obj;
} //function


//-* (Un)Select all the checkboxes inside a given form
df.chkboxSelectAll = function (formname, status)
{
	obj = df.gid(formname);

	for (var i=0; i < obj.elements.length; i++) 
	{
		obj.elements[i].checked = status;
	} //for
} //function

df.visible = function (objname, status)
{
	if (typeof objname == 'object')
	{
		obj = objname;
	}
	else
	{
		obj = df.gid(objname);
	} //if

	switch(status)
	{
		case true:
			obj.style.display = '';
		break;

		case false:
			obj.style.display = 'none';
		break;
	} //switch
} //function

df.openWindow = function (url,winName,options)
{
    return window.open(url,winName,options);
}

/**
 * df._css.js: utilities for manipulating the CSS class of an HTML element.
 *
 * This module defines a single global symbol named df._css. This object
 * contains utility functions for working with the class attribute (className
 * property) of HTML elements. All functions take two arguments: the element
 * e being tested or manipulated and the CSS class c that is to be tested,
 * added, or removed. If element e is a string, it is taken as an element
 * id and passed to document.getElementById().
 */
df._css = {};

// Return true if element e is a member of the class c; false otherwise
df._css.is = function(e, c) 
{
    if (typeof e == "string") e = document.getElementById(e); // element id

    // Before doing a regexp search, optimize for a couple of common cases.
    var classes = e.className;
    if (!classes) return false;    // Not a member of any classes
    if (classes == c) return true; // Member of just this one class

    // Otherwise, use a regular expression to search for c as a word by itself
    // \b in a regular expression requires a match at a word boundary.
    return e.className.search("\\b" + c + "\\b") != -1;
};

// Add class c to the className of element e if it is not already there.
df._css.add = function(e, c) 
{
    if (typeof e == "string") e = document.getElementById(e); // element id
    if (df._css.is(e, c)) return; // If already a member, do nothing
    if (e.className) c = " " + c;  // Whitespace separator, if needed
    e.className += c;              // Append the new class to the end
};

// Remove all occurrences (if any) of class c from the className of element e
df._css.remove = function(e, c) 
{
    if (typeof e == "string") e = document.getElementById(e); // element id
    // Search the className for all occurrences of c and replace with "".
    // \s* matches any number of whitespace characters.
    // "g" makes the regular expression match any number of occurrences
    e.className = e.className.replace(new RegExp("\\b"+ c+"\\b\\s*", "g"), "");
};

    
df.getCookie = function ( name ) 
{
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) 
	{
		return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ';', len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}

df.setCookie = function ( name, value, expires, path, domain, secure ) 
{
	var today = new Date();
	today.setDate( today.getDate()+expires );

//alert(today.toGMTString());
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name+'='+escape( value ) +
		( ( expires ) ? ';expires='+today.toGMTString() : '' ) + //expires.toGMTString()
		( ( path ) ? ';path=' + path : '' ) +
		( ( domain ) ? ';domain=' + domain : '' ) +
		( ( secure ) ? ';secure' : '' );
}

df.deleteCookie = function ( name, path, domain ) 
{
	if ( getCookie( name ) ) document.cookie = name + '=' +
			( ( path ) ? ';path=' + path : '') +
			( ( domain ) ? ';domain=' + domain : '' ) +
			';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}

