//---------------------------------------------------------------------
// Author:		Iwan Bel
// Date:		09-03-2004
// Description: All kinds of functions related to the checkbox in the webgrid
// Reference:	TD Content Manager Webshop
//---------------------------------------------------------------------

var _parent;
var _hidden;
var _defaultChecked;
var _children;

var _parent_add;
var _hidden_add;
var _defaultChecked_add;
var _children_add;

//---------------------------------------------------------------------
// Author:		Daniel Wauben
// Date:		01-04-2005
// Description: Inititializes the class variables, defaultChecked indicates
//				if all checkboxes must be checked
// Reference:	TD Content Manager Webshop
//---------------------------------------------------------------------
function InitExtended(defaultChecked, parent, hidden) 
{
	_children = new Array();
	
    _hidden = document.getElementById( hidden );
	
	_defaultChecked = defaultChecked;

	_parent = document.getElementById( parent );
	if ( _parent != null ) 
	{
		_parent.checked = defaultChecked;
	}
}

//---------------------------------------------------------------------
// Author:		Iwan Bel
// Date:		09-03-2004
// Description: Inititializes the class variables, defaultChecked indicates
//				if all checkboxes must be checked
// Reference:	TD Content Manager Webshop
//---------------------------------------------------------------------
function Init (defaultChecked) {
	_children = new Array();
	
    _hidden = document.getElementById(_values);
	
	_defaultChecked = defaultChecked;

	_parent = document.getElementById( 'parent' );
	if ( _parent != null ) 
	{
		_parent.checked = defaultChecked;
	}
}

//---------------------------------------------------------------------
// Author:		Iwan Bel
// Date:		09-03-2004
// Description: Inititializes the class variables, defaultChecked indicates
//				if all checkboxes must be checked
// Reference:	TD Content Manager Webshop
//---------------------------------------------------------------------
function Init_Add (defaultChecked) {
	_children_add = new Array();
	
    _hidden_add = document.getElementById( _values_add );
	
	_defaultChecked_add = defaultChecked;

	_parent_add = document.getElementById( 'parent_add' );
	if ( _parent_add != null ) 
	{
		_parent_add.checked = defaultChecked;
	}
}

//---------------------------------------------------------------------
// Author:		Iwan Bel
// Date:		09-03-2004
// Description: Select all children checkboxes at once
// Reference:	TD Content Manager Webshop
//---------------------------------------------------------------------
function SelectAll( parentCheckBox ) {
	//(un)check each child in parent collection
	if (_parent != null)
	{
		for ( var i=0; i < _children.length; i++ ) 
		{
			_children[i][0].checked = parentCheckBox.checked;
		}
	} 
}

//---------------------------------------------------------------------
// Author:		Iwan Bel
// Date:		09-03-2004
// Description: Select all children checkboxes at once
// Reference:	TD Content Manager Webshop
//---------------------------------------------------------------------
function SelectAll_Add( parentCheckBox ) {
	//(un)check each child in parent collection
	if (_parent_add != null)
	{
		for ( var i=0; i < _children_add.length; i++ ) 
		{
			_children_add[i][0].checked = parentCheckBox.checked;
		}
	} 
}

//---------------------------------------------------------------------
// Author:		Iwan Bel
// Date:		09-03-2004
// Description: Add child checkbox to parent collenction with value
// Reference:	TD Content Manager Webshop
//---------------------------------------------------------------------
function RegisterChild( childName, value ) 
{
	if (_children != null)
	{
		//declare and instantiate child
		var child = document.getElementById( childName );
		child.checked = _defaultChecked;

		//add current child to parent collection
		_children[_children.length] = new Array(2)
		_children[_children.length-1][0] = child;
		_children[_children.length-1][1] = value;
	}
}

//---------------------------------------------------------------------
// Author:		Iwan Bel
// Date:		09-03-2004
// Description: Add child checkbox to parent collenction with value
// Reference:	TD Content Manager Webshop
//---------------------------------------------------------------------
function RegisterChild_Add( childName, value ) 
{
	if (_children_add != null)
	{
		//declare and instantiate child
		var child = document.getElementById( childName );
		child.checked = _defaultChecked;

		//add current child to parent collection
		_children_add[_children_add.length] = new Array(2)
		_children_add[_children_add.length-1][0] = child;
		_children_add[_children_add.length-1][1] = value;
	}
}

function CheckChildren() 
{
	//uncheck parent and if not all are checked
	//only if parent exists
	if ( _parent == null ) 
	{
		return;
	}
    for ( var i=0; i < _children.length; i++ ) 
    {
        _parent.checked = _children[i][0].checked;
		if ( _parent.checked == false )
		{
			return;
		}
    }
}

function CheckChildren_Add() 
{
	//uncheck parent and if not all are checked
	//only if parent exists
	if ( _parent_add == null ) 
	{
		return;
	}
    for ( var i=0; i < _children_add.length; i++ ) 
    {
        _parent_add.checked = _children_add[i][0].checked;
		if ( _parent_add.checked == false )
		{
			return;
		}
    }
}

function SubmitValues() 
{
	//submit values to hidden input field
	if ( _hidden != null ) 
	{
		_hidden.value = "";
		for ( var i=0; i < _children.length; i++ ) 
		{
			if ( _children[i][0].checked ) 
			{
				if ( _hidden.value.length > 0 ) 
				{
					_hidden.value += ",";
				}
				_hidden.value += _children[i][1];
			}
		}
	}
}

//##WLD ITG 2 Dec 2008 - Rel 6.1 ITWR 11195 ################################# START
function AddToTemplateSubmitValues(strMessage) 
{
	//submit values to hidden input field
	if ( _hidden != null ) 
	{
		_hidden.value = "";
		for ( var i=0; i < _children.length; i++ ) 
		{
			if ( _children[i][0].checked ) 
			{
				if ( _hidden.value.length > 0 ) 
				{
					_hidden.value += ",";
				}
				_hidden.value += _children[i][1];
			}
		}
	}
	if (_hidden.value == "")
	{
	    alert(strMessage);
		return false;
	}
}
//##WLD ITG 2 Dec 2008 - Rel 6.1 ITWR 11195 ################################# START

function SubmitValues_Add() 
{
	//submit values to hidden input field
	if ( _hidden_add != null ) 
	{
		_hidden_add.value = "";
		for ( var i=0; i < _children_add.length; i++ ) 
		{
			if ( _children_add[i][0].checked ) 
			{
				if ( _hidden_add.value.length > 0 ) 
				{
					_hidden_add.value += ",";
				}
				_hidden_add.value += _children_add[i][1];
			}
		}
	}
}
function RestoreBasketData()
{
	var selectedItems = GetBasketCookie();
	if(selectedItems != null)
	{
		var vals = selectedItems.split(",");
		
		for(var i=0; i < vals.length; i++)
		{
			var item = vals[i];
			for( var j=0; j < _children_add.length; j++)
			{
				if(item == _children_add[j][1])
				{
					_children_add[j][0].checked = true;
					break;
				}
			}
		}
		DeleteBasketCookie();
	}
}
function SetBasketCookie() 
{
	if(_hidden_add != null)
	{
		SubmitValues_Add();
		var selectedItems = _hidden_add.value;
		var expdate = new Date ();
		expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 31));	
		SetCookie("BasketSelectedItems", selectedItems, expdate.toGMTString(), "/", "", "");
	}
}

function SetCookie (name, value, expires, path, domain, secure) 
{
	document.cookie = name + "=" + escape(value) +
    	((expires) ? "; expires=" + expires : "") +
    	((path) ? "; path=" + path : "") +
    	((domain) ? "; domain=" + domain : "") +
     	((secure) ? "; secure" : "");
}

function GetBasketCookie() 
{
	var name = "BasketSelectedItems";
	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 ) );
}
function DeleteBasketCookie()
{
	DeleteCookie("BasketSelectedItems","/", "");
}
function DeleteCookie( name, path, domain ) 
{
	if ( GetBasketCookie()) 
		document.cookie = name + "=" +( ( path ) ? ";path=" + path : "") +( ( domain ) ? ";domain=" + domain : "" ) +";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}


