var msOL_VIEWSTATE = '';
var msButtonInfo  = '';
var msButtonImage_On = '';
var msButtonImage_Off = '';
var msCategory = '';
var msObjectToLinkRecordID = '';
var msObjectToLinkText = '';
var msVB_RecordID = '';
var msPageNumber = '';
var msRowCount = '';
var msColCount = '';
var msChildCount = '';

// Cart
var msCartButtonInfo  = '';
var msCartButtonImage_On = '';
var msCartButtonImage_Off = '';
var msCartRecordID = '';
var miCartItemLimit;
var miCartItemCounter;

//var msButtonInfo = 'pos001-Im_ID1-ON/pos002-Im_ID2-OFF/pos003-Im_ID3-ON';
//var msButtonImage_On = 'But_On.gif';
//var msButtonImage_Off = 'But_Off.gif';
//var msCategory = 'Album';
//var msObjectToLinkRecordID = 'Album_ID';


var BUTTON_STATE_ON  = "ON";
var BUTTON_STATE_OFF = "OFF";

var BUTTON_TYPE_CART  = "CART";
var BUTTON_TYPE_ALBUM = "ALBUM";

var PARAM_IMAGE_ID      = "IID";
var PARAM_TARGET_ID     = "OID";
var PARAM_CATEGORY      = "C";
var PARAM_ACTION        = "A";
var PARAM_BUTTON_NAME   = "BN";
var PARAM_VB_ID         = "VBID";
var PARAM_PAGE_NUMBER   = "PN";
var PARAM_ROW_COUNT     = "RC";
var PARAM_COL_COUNT     = "CC";
var PARAM_CHILD_COUNT   = "CHC";

var CONTROL_ADD_ALL_CART    = "ViewBoxThumbFooter_VForm777SelectAll_Cart";

var AJAX_URL        = "InvisibleToolPage/InvisibleToolPage.aspx";

var ACTION_ADD      = "Add";
var ACTION_REMOVE   = "Remove";

// Button state
function ButtonState()
{
    this.bRequest = false;
    this.eState   = BUTTON_STATE_OFF;
    this.eType    = BUTTON_TYPE_ALBUM;
    this.iIID     = "";
    this.iBID     = "";
}

var goButtonStateList = new Object();

//dojo.require("dojo.io.*");
//dojo.require("dojo.io.IframeIO");





function GetSpanName(sButtonName)
{
	var sSpanName = '';
	sSpanName = sButtonName.replace('Work', 'Text');
	return sSpanName;
}

function GetButtonNumber(sButtonName)
{
	var sButtonNumber = '';
	//alert('Button name : ' + sButtonName + '; Button # : ' + sButtonNumber);
	sButtonNumber = sButtonName.substring(sButtonName.length - 3, sButtonName.length);
	//alert('Button number : ' + sButtonNumber);
	return sButtonNumber;
}

function GetImageRecordID(sButtonName, sButtonInfo)
{
	var sButtonNumber = GetButtonNumber(sButtonName);
	
	var iStartIndex = sButtonInfo.indexOf('pos' + sButtonNumber) + ('pos' + sButtonNumber).length + 1;
	var sTempString = sButtonInfo.substring(iStartIndex, sButtonInfo.length);
	var iEndIndex = sTempString.indexOf('-');
	var sImageRecordID = sTempString.substring(0, iEndIndex);
	//alert(sImageRecordID);
	return sImageRecordID;
}

function GetButtonStatus(sButtonName, sButtonInfo)
{
	var sImageRecordID = GetImageRecordID(sButtonName, sButtonInfo);
	var iStartIndex = sButtonInfo.indexOf(sImageRecordID);
	var sTempString = sButtonInfo.substring(iStartIndex, sButtonInfo.length);
	sTempString = sTempString.substring(sTempString.indexOf('-') + 1, sTempString.length);
	var iEndIndex = sTempString.indexOf('/');
	if (iEndIndex == -1 )
	{
		iEndIndex = sButtonInfo.length;
	}
	var sButtonStatus = sTempString.substring(0, iEndIndex);
	//alert(sButtonStatus);
	return sButtonStatus;
}

function ChangeButtonStatus(sButtonName, sButtonStatus, sButtonInfo)
{
	var sImageRecordID = GetImageRecordID(sButtonName, sButtonInfo);
	var iStartIndex = sButtonInfo.indexOf(sImageRecordID) + sImageRecordID.length + 1;
	var iEndIndex = iStartIndex + sButtonStatus.length;
	if (sButtonStatus == 'ON' )
	{
		sButtonInfo = sButtonInfo.substring(0, iStartIndex) + 'OFF' + sButtonInfo.substring(iEndIndex, sButtonInfo.length);
	}
	else
	{
		sButtonInfo = sButtonInfo.substring(0, iStartIndex) + 'ON' + sButtonInfo.substring(iEndIndex, sButtonInfo.length);
	}
	return sButtonInfo;
}


function SwitchButtonImage(sButtonName, sType, sButtonInfo)
{
	var sButtonStatus = GetButtonStatus(sButtonName, sButtonInfo);
	if (sButtonStatus == "ON" )
	{
		if ( sType.toUpperCase() == 'CART' )
		{
			span = document.getElementById(sButtonName);
			if((span != null)
			&& (span.nodeName.toUpperCase() != "IMG"))
			{
				span.innerHTML = '<span style="font-weight:bold;">' + msCartButtonImage_On + '</span>';
			}
			else
			{
    			if ( document.images[sButtonName] != null )
    			{
    				document.images[sButtonName].src =  msCartButtonImage_On;
    			}
            }
		}
		else
		{
			span = document.getElementById(sButtonName);
			if((span != null)
			&& (span.nodeName.toUpperCase() != "IMG"))
			{
				span.innerHTML = '<span style="font-weight:bold;">' + msButtonImage_On + '</span>';
			}
			else
			{
    			if ( document.images[sButtonName] != null )
    			{
    				document.images[sButtonName].src =  msButtonImage_On;
    			}
			}
		}
	}
	else
	{
		if ( sType.toUpperCase() == 'CART' )
		{
			span = document.getElementById(sButtonName);
			if((span != null)
			&& (span.nodeName.toUpperCase() != "IMG"))
			{
				span.innerHTML = msCartButtonImage_Off;
			}
			else
			{
    			if ( document.images[sButtonName] != null )
    			{
    				document.images[sButtonName].src =  msCartButtonImage_Off;
    			}
			}
		}
		else
		{
			span = document.getElementById(sButtonName);
			if((span != null)
			&& (span.nodeName.toUpperCase() != "IMG"))
			{
				span.innerHTML = msButtonImage_Off;
			}
			else
			{
    			if ( document.images[sButtonName] != null )
    			{
    				document.images[sButtonName].src =  msButtonImage_Off;
    			}
			}
		}
	}
}

function GetPageImageCount()
{
    return msCartButtonInfo.split('/').length;
}

function UpdateAddRemoveAllButton()
{
    // Gets the buttons
    var oButtonAdd      = document.getElementById(CONTROL_ADD_ALL_CART);
    
    // valid ?
    if(oButtonAdd != null)
    {
        if(miCartItemCounter + (GetPageImageCount()) >= miCartItemLimit)
        {
            oButtonAdd.style.display = "none";
        }
        else
        {
            oButtonAdd.style.display = "block";
        }
    }
}

function ChangeCaption(sSpanName, sText)
{ 
	/*alert(sSpanName);
	//document.forms[0].elements[sSpanName].value = sText;
	/*document.forms[0].elements["Btn_Text_001"].value = 'toto';*/
	span = document.getElementById(sSpanName);
	if ( span != null )
	{
		span.innerHTML = sText;
	}
}
//function SwitchOnButtonImage(sButtonName)
//{
//	document.images[sButtonName].src =  msButtonImage_On;
//}
//function SwitchOffButtonImage(sButtonName)
//{
//	document.images[sButtonName].src = msButtonImage_Off;
//}

function CallToolPage(sButtonName, sObjectToLinkRecordID, sCategory, sButtonInfo)
{
	var sUrl = '';
	var sAction = '';
	if ( GetButtonStatus(sButtonName, sButtonInfo) == 'OFF' )
	{
		sAction = 'Remove';
	}
	else
	{
		sAction = 'Add';
	}
	sUrl += 'InvisibleToolPage/InvisibleToolPage.aspx?';
	sUrl += 'IID=' + GetImageRecordID(sButtonName, sButtonInfo) + '&OID=' + sObjectToLinkRecordID + '&C=' + sCategory + '&A=' + sAction;
	var image1 = new Image();
	image1.src = sUrl;
}
function CallToolPageForMultipleImages(sAction, ObjectToLinkRecordID, sCategory)
{
  if(typeof sCategory == 'undefined')
  {
    sCategory = msCategory;
  }

	var sUrl = '';
	sUrl += 'InvisibleToolPage/InvisibleToolPage.aspx?';
	sUrl += 'VBID=' + msVB_RecordID + '&OID=' + ObjectToLinkRecordID + '&C=' + sCategory + '&A=' + sAction + '&PN=' + msPageNumber + '&RC=' + msRowCount + '&CC=' + msColCount + '&CHC=' + msChildCount;
	var image1 = new Image();
	image1.src = sUrl;
}

function SwitchAlbumButtonStatus(_sButtonName)
{
    return ChangeButtonStatus(_sButtonName, GetButtonStatus(_sButtonName, msButtonInfo), msButtonInfo);
}

function SwitchCartButtonStatus(_sButtonName)
{
    return ChangeButtonStatus(_sButtonName, GetButtonStatus(_sButtonName, msCartButtonInfo), msCartButtonInfo);
}

/**
 * Callback function (success)
 */
function ExecuteActionSuccess(_sType, _oData, _oResponse)
{
    var sReponse;
    
    // XMLHTTP Transport ?
    if(_oResponse.status)
    {
        sReponse = _oData;
    }
    // IFrame transport ?
    else
    {
        sReponse = _oData.body.innerHTML;
    }

    
    var oResult = eval('(' + sReponse + ')');
    var sAction   = oResult["A"];
    var sCategory = oResult["C"].toUpperCase();
    var aoResult  = oResult["R"];
    
    // Loop on images
    for(var iIdx = 0; iIdx < aoResult.length; iIdx++)
    {
        var oState = aoResult[iIdx];
        var sImageID = oState.IID;
        var sState   = oState.S;
        var sMessage = oState.M;

        // Gets button status
        var oButtonState = GetButtonImgState(sImageID, sCategory)
        
        // Valid ?
        if(oButtonState != null)
        {
            // Cart ?
            if(sCategory == BUTTON_TYPE_CART)
            {
                // Gets the current button state
                if(GetButtonStatus(oButtonState.iBID, msCartButtonInfo) != sState)
                {
                    // Update the button state
                	msCartButtonInfo = ChangeButtonStatus(oButtonState.iBID, GetButtonStatus(oButtonState.iBID, msCartButtonInfo), msCartButtonInfo);
                	SwitchButtonImage(oButtonState.iBID, sCategory, msCartButtonInfo);
                	
                	// Add or Add all ?
                	if(sState == BUTTON_STATE_ON)
                	{
                	    miCartItemCounter++;
                	}
                	else
                	{
                	    miCartItemCounter--;
                	}
                	
                	// Update status
                	if(oButtonState.eState == BUTTON_STATE_ON)
                	{
                	    oButtonState.eState = BUTTON_STATE_OFF;
                	}
                	else
                	{
                	    oButtonState.eState = BUTTON_STATE_ON;
                	}
        	        UpdateAddRemoveAllButton();
                }
            }
            else
            {
                // Gets the current button state
                if(GetButtonStatus(oButtonState.iBID, msButtonInfo) != sState)
                {
                    // Update the button state
                	msButtonInfo = ChangeButtonStatus(oButtonState.iBID, GetButtonStatus(oButtonState.iBID, msButtonInfo), msButtonInfo);
                	SwitchButtonImage(oButtonState.iBID, sCategory, msButtonInfo);
                	var sSpanName = GetSpanName(oButtonState.iBID);
                	ChangeCaption(sSpanName, msObjectToLinkText);
                	
                	// Update status
                	if(oButtonState.eState == BUTTON_STATE_ON)
                	{
                	    oButtonState.eState = BUTTON_STATE_OFF;
                	}
                	else
                	{
                	    oButtonState.eState = BUTTON_STATE_ON;
                	}
                }
            }
            
        	oButtonState.bRequest = false;
        }
    }
}

/**
 * Callback function (error)
 */
function ExecuteActionError(_sType, _oError, _oResponse)
{
}

function ExecuteAction(_sButtonName, _oButtonState)
{
    // Valid button name ?
    if((_oButtonState != null)
    && (_sButtonName  != null)
    && (_sButtonName  != ""))
    {
        // Updates Request state
        _oButtonState.bRequest = true;
        
        // Build request parameters
        var oRequest = null;
        
        // Gets button info
        var sButtonInfo = msButtonInfo;
        var sTargetID   = msObjectToLinkRecordID;
        var sCategory   = msCategory;
        
        // Cart ?
        if(_oButtonState.eType == BUTTON_TYPE_CART)
        {
            sButtonInfo = msCartButtonInfo;
            sTargetID   = msCartRecordID;
            sCategory   = BUTTON_TYPE_CART;
        }
        
        // Gets current state
        var sCurrentState = _oButtonState.eState;
        
        // Get opposite (ON => Remove, OFF => add)
        var sAction;
        if(sCurrentState == BUTTON_STATE_ON)
        {
            // Button is turned on, the user want to remove it if clicked
            sAction = ACTION_REMOVE;
        }
        else
        {
            // Button is turned off, the user want to add it if clicked
            sAction = ACTION_ADD;
        }
        
        // Add a cart item when limit reached ?
        if((sAction == ACTION_ADD)
        && (sCategory.toUpperCase() == BUTTON_TYPE_CART)
        && (miCartItemCounter >= miCartItemLimit))
        {
            // Limit reached, can't add
    	    alert('You have reached the cart limit. Please decrease the number of images in your cart.');
    	    _oButtonState.bRequest = false;
        }
        else
        {
            // Build request parameters
            var oParams = new Object();
            oParams[PARAM_IMAGE_ID]     = GetImageRecordID(_sButtonName, sButtonInfo);
            oParams[PARAM_TARGET_ID]    = sTargetID;
            oParams[PARAM_CATEGORY]     = sCategory;
            oParams[PARAM_ACTION]       = sAction;
            oParams[PARAM_BUTTON_NAME]  = _sButtonName;
            
            var oRequestArgs = {url:      AJAX_URL,
                                method:   'GET',
                                content:  oParams,
                                mimetype: "text/html",
                                transport:"XMLHTTPTransport",
                                preventCache: true,
                                load:     ExecuteActionSuccess,
                                error:    ExecuteActionError
                               };
            
            // Try to use the XML HTTP transport
            
            try
            {
                oRequest = dojo.io.bind(oRequestArgs);
            }
            catch(_oException)
            {/*
                // Try to use the Iframe transport
                oRequestArgs.transport = "IframeTransport";
        
                // Do an Ajax request
                oRequest = dojo.io.bind(oRequestArgs);
             */
            }
        }
    }
}

function ExecuteMultipleAction(_sAction, _sType)
{
    // Valid parameters ?
    if((_sType != null)
    && (_sAction != null))
    {
        var sTargetID   = msObjectToLinkRecordID;
        
        // Cart ?
        if(_sType.toUpperCase() == BUTTON_TYPE_CART)
        {
            sTargetID   = msCartRecordID;
        }

        // Build request parameters
        var oParams = new Object();
        oParams[PARAM_VB_ID]        = msVB_RecordID;
        oParams[PARAM_TARGET_ID]    = sTargetID;
        oParams[PARAM_CATEGORY]     = _sType;
        oParams[PARAM_ACTION]       = _sAction;
        oParams[PARAM_PAGE_NUMBER]  = msPageNumber;
        oParams[PARAM_COL_COUNT]    = msColCount;
        oParams[PARAM_ROW_COUNT]    = msRowCount;
        oParams[PARAM_CHILD_COUNT]  = msChildCount;
        
        var oRequestArgs = {url:      AJAX_URL,
                            method:   'GET',
                            content:  oParams,
                            mimetype: "text/html",
                            transport:"XMLHTTPTransport",
                            preventCache: true,
                            load:     ExecuteActionSuccess,
                            error:    ExecuteActionError
                           };
        
        // Try to use the XML HTTP transport
        try
        {
            oRequest = dojo.io.bind(oRequestArgs);
        }
        catch(_oException)
        {
          /*
            // Try to use the Iframe transport
            oRequestArgs.transport = "IframeTransport";
    
            // Do an Ajax request
            oRequest = dojo.io.bind(oRequestArgs);
          */
        }
    }
}

/**
 * Returns the button state from the hash table
 * @param _sButtonName Button name
 * @return Returns the button state object
 */
function GetButtonState(_sButtonName)
{
    // Default return value
    var oRet = null;
    
    // Valid button name ?
    if((_sButtonName != null)
    && (_sButtonName != ""))
    {
        // Try to get the value
        try
        {
            oRet = goButtonStateList[_sButtonName];
        }
        catch(_oException)
        {}
    }
        
    // Returns the button state
    return oRet;
}

function GetButtonImgState(_sImageID, _sType)
{
    // Default return value
    var oRet = null;
    
    // Vaid button name ?
    if((_sImageID != null)
    && (_sImageID != ""))
    {
        // Update type
        var sType = _sType;
        if(sType != BUTTON_TYPE_CART)
        {
            sType = BUTTON_TYPE_ALBUM;
        }
        
        for(var sKey in goButtonStateList)
        {
            var oValue = goButtonStateList[sKey];
            
            // valid ?
            if((oValue != null)
            && (oValue.iIID  == _sImageID)
            && (oValue.eType == sType))
            {
                oRet = oValue;
            }
        }
    }
        
    // Returns the button state
    return oRet;
}

/**
 * Make a request and update the button state
 * @param _sButtonName Button name
 */
function ManageButton(_sButtonName)
{
    // 1 - Get button status in hash table
    var oButtonState = GetButtonState(_sButtonName);
    
    // Found or Valid ?
    if(oButtonState != null)
    {
        // A button state has been found, is it available for a request ?
        if(!oButtonState.bRequest)
        {
            // Yes, Request data
            ExecuteAction(_sButtonName, oButtonState);
        }
    }
    
    // Used ?
    
/*    
	msButtonInfo = ChangeButtonStatus(sButtonName, GetButtonStatus(sButtonName, msButtonInfo), msButtonInfo);
	SwitchButtonImage(sButtonName, '', msButtonInfo);
	var sSpanName = GetSpanName(sButtonName);
	ChangeCaption(sSpanName, msObjectToLinkText);
	CallToolPage(sButtonName, msObjectToLinkRecordID, msCategory, msButtonInfo);
*/
}



function ManageCartButton(sButtonName)
{
    sButtonStatus = GetButtonStatus(sButtonName, msCartButtonInfo);
    
    if ((miCartItemCounter < miCartItemLimit && sButtonStatus == 'OFF') || sButtonStatus == 'ON')
    {
	    msCartButtonInfo = ChangeButtonStatus(sButtonName, GetButtonStatus(sButtonName, msCartButtonInfo), msCartButtonInfo);
	    SwitchButtonImage(sButtonName, 'CART', msCartButtonInfo);
	    CallToolPage(sButtonName, msCartRecordID, 'Cart', msCartButtonInfo);
	    
	    if ( sButtonStatus == 'ON')
	    {
	        miCartItemCounter--;
	    }
	    else
	    {
	        miCartItemCounter++;
	    }
	}
	else
	{
	    alert('You have reached the cart limit. Please decrease the number of images in your cart.');
	}
}

function SwitchAllButtons(_sAction, _sType)
{
    var bValid = true;
    var sType = _sType;
    
    if((sType)
    || (typeof sType != "undefined"))
    {
        if(sType.toUpperCase() != BUTTON_TYPE_CART)
        {
            sType = msCategory;
        }
    }
    else
    {
        sType = msCategory;
    }
    
    // Loop on all album buttons
    for(var sKey in goButtonStateList)
    {
        // Gets value
        var oState = goButtonStateList[sKey];
        
        // Valid ?
        if((oState != null)
        && (oState.bRequest)
        && (oState.eType == sType))
        {
            bValid = false;
        }
    }
    
    // Athaurized to add ?
    if(bValid)
    {
        // Loop on all album buttons
        for(var sKey in goButtonStateList)
        {
            // Gets value
            var oState = goButtonStateList[sKey];
            if(oState.eType == sType)
            {
                oState.bRequest = true;            
            }
        }
        
        // Execute action
        ExecuteMultipleAction(_sAction, sType);
    }
}

function SwitchOffAllButtons()
{
	var iButtonCount = msButtonInfo.split('/').length;
	var sButtonStatus = '';
	for ( i=0; i<iButtonCount; i++ )
	{
		sButtonName = GetButtonNameFromButtonInfo(msButtonInfo.split('/')[i]);
		sButtonStatus = GetButtonStatus(sButtonName, msButtonInfo);
		if ( sButtonStatus == 'ON' )
		{
			msButtonInfo = ChangeButtonStatus(sButtonName, 'ON', msButtonInfo);
		}
		SwitchButtonImage(sButtonName, '', msButtonInfo);
	}

	CallToolPageForMultipleImages('SwitchOffAll', msObjectToLinkRecordID);
}
function InvertAllButtons()
{
	for ( i=0; i<msButtonInfo.split('/').length; i++ )
	{
		sButtonName = GetButtonNameFromButtonInfo(msButtonInfo.split('/')[i]);
		msButtonInfo = ChangeButtonStatus(sButtonName, GetButtonStatus(sButtonName, msButtonInfo), msButtonInfo);
		SwitchButtonImage(sButtonName, '', msButtonInfo);
	}
	CallToolPageForMultipleImages('InvertAll', msObjectToLinkRecordID);
}

// Cart
function SwitchOnAllButtonsInCart()
{
	var iButtonCount = msCartButtonInfo.split('/').length;
	var sButtonStatus = '';
	for ( i=0; i<iButtonCount; i++ )
	{
		sButtonName = GetCartButtonNameFromButtonInfo(msCartButtonInfo.split('/')[i]);
		sButtonStatus = GetButtonStatus(sButtonName, msCartButtonInfo);
		
		if ( sButtonStatus == 'OFF' )
		{
			msCartButtonInfo = ChangeButtonStatus(sButtonName, 'OFF', msCartButtonInfo);
		}
		SwitchButtonImage(sButtonName, 'CART', msCartButtonInfo);
	}
	CallToolPageForMultipleImages('SwitchOnAll', msCartRecordID, 'CART');
}
function SwitchOffAllButtonsInCart()
{
	var iButtonCount = msCartButtonInfo.split('/').length;
	var sButtonStatus = '';
	for ( i=0; i<iButtonCount; i++ )
	{
		sButtonName = GetCartButtonNameFromButtonInfo(msCartButtonInfo.split('/')[i]);
		sButtonStatus = GetButtonStatus(sButtonName, msCartButtonInfo);
		if ( sButtonStatus == 'ON' )
		{
			msCartButtonInfo = ChangeButtonStatus(sButtonName, 'ON', msCartButtonInfo);
		}
		SwitchButtonImage(sButtonName, 'CART', msCartButtonInfo);
	}
	CallToolPageForMultipleImages('SwitchOffAll', msCartRecordID, 'CART');
}







/***** OLD SYSTEM FUNCTION *****/



function GetButtonNameFromButtonInfo(sButtonInfo)
{
	sButtonName = 'Btn_Work_' + sButtonInfo.substring(3, 6);
	//alert(sButtonName);
	return sButtonName;
}
function GetCartButtonNameFromButtonInfo(sButtonInfo)
{
	sButtonName = 'Btn_Cart_' + sButtonInfo.substring(3, 6);
	//alert(sButtonName);
	return sButtonName;
}
function GetValueFromViewstate(sControlName, sVFormName)
{
	var sControlNameWithSplitters = '';
	if ( sVFormName != '' )
	{
		sControlNameWithSplitters = '#:#' + sVFormName + '777' + sControlName + '#@#';
	}
	else
	{
		sControlNameWithSplitters = '#:#' + sControlName + '#@#';
	}
	var iStartIndex = msOL_VIEWSTATE.indexOf(sControlNameWithSplitters, 0);
	var iEndIndex = -1;
	if ( iStartIndex > -1 )
	{
		iStartIndex = iStartIndex + sControlNameWithSplitters.length;
		iEndIndex = msOL_VIEWSTATE.indexOf('#:#', iStartIndex);
		if ( iEndIndex == -1 )
		{
			return "";
		}
		else
		{
			return msOL_VIEWSTATE.substring(iStartIndex, iEndIndex);
		}
	}
	else
	{
		return "";
	}
}

/**
 * Returns the control value (From a Form)
 */
function GetValueFromForm(_sControlName, _sVFormName)
{
	var sControlValue = "";
	
	if ( _sVFormName != null && _sVFormName != "" )
	{
		_sControlName = _sVFormName + "777" + _sControlName;
	}
	if ( document.forms[0].elements[_sControlName] != null )
	{
		sControlValue = document.forms[0].elements[_sControlName].value;
	}
	
	return sControlValue;
}

function attente()
{

	//VFormName
	var sVFormName         = GetValueFromForm('VFormName', '');
	
	//Buttons
	msButtonInfo           = GetValueFromForm('ButtonInfo', '');
	msButtonImage_On       = GetValueFromForm('ButtonOn', '');
	msButtonImage_Off      = GetValueFromForm('ButtonOff', '');
	
	//Cart
	msCartButtonInfo       = GetValueFromForm('CartButtonInfo', '');
	msCartButtonImage_On   = GetValueFromForm('CartButtonOn', '');
	msCartButtonImage_Off  = GetValueFromForm('CartButtonOff', '');
	msCartRecordID         = GetValueFromForm('CartRecordID', '');
		
	msCategory             = GetValueFromForm('Category', sVFormName);
	msObjectToLinkRecordID = GetValueFromForm('ObjectToLinkRecordID', '');
	msObjectToLinkText     = GetValueFromForm('ObjectToLinkText', '');
	msVB_RecordID          = GetValueFromForm('VBRecordID', sVFormName);
	msPageNumber           = GetValueFromForm('CurrentPageNumber', sVFormName);
	msRowCount             = GetValueFromForm('RowCount', sVFormName);
	msColCount             = GetValueFromForm('ColCount', sVFormName);
	msChildCount           = GetValueFromForm('ChildCount', sVFormName);
	
	miCartItemCounter      = parseInt(GetValueFromForm('CartItemCounter', sVFormName), 10);
	miCartItemLimit        = parseInt(GetValueFromForm('CartItemLimit', sVFormName), 10);
	
	if ( isNaN(miCartItemCounter) || isNaN(miCartItemLimit))
	{
	    miCartItemCounter   = 0;
	    miCartItemLimit     = 1000;
	}
	
	if ( msButtonInfo != "" )
	{
		//alert(msButtonInfo);
		for ( i=0; i<msButtonInfo.split('/').length; i++ )
		{
			sButtonName = GetButtonNameFromButtonInfo(msButtonInfo.split('/')[i]);
			SwitchButtonImage(sButtonName, '', msButtonInfo);
			var sSpanName = GetSpanName(sButtonName);
			ChangeCaption(sSpanName, msObjectToLinkText);
			
			// Set the button status
			var oButtonState  = new ButtonState();
			oButtonState.eState = GetButtonStatus(sButtonName, msButtonInfo);
			oButtonState.eType  = BUTTON_TYPE_ALBUM;
			oButtonState.iBID    = sButtonName;
			oButtonState.iIID    = GetImageRecordID(sButtonName, msButtonInfo);
			goButtonStateList[sButtonName] = oButtonState;
		}
	}
	if ( msCartButtonInfo != "" )
	{
		//alert(msButtonInfo);
		for ( i=0; i<msCartButtonInfo.split('/').length; i++ )
		{
			sButtonName = GetCartButtonNameFromButtonInfo(msCartButtonInfo.split('/')[i]);
			SwitchButtonImage(sButtonName, 'CART', msCartButtonInfo);
			
			// Creates a button state
			// Set the button status
			var oButtonState  = new ButtonState();
			oButtonState.eState = GetButtonStatus(sButtonName, msCartButtonInfo);
			oButtonState.eType  = BUTTON_TYPE_CART;
			oButtonState.iBID    = sButtonName;
			oButtonState.iIID    = GetImageRecordID(sButtonName, msCartButtonInfo);
			goButtonStateList[sButtonName] = oButtonState;
		}
	}
}

/**
 * Initialize all the buttons states
 */
function BindAllButtons()
{
window.setTimeout('attente()', 100);

}
