/****************/
/* Grid scripts */
/****************/
function EditGrid(rowId, grid)
{
    grid.Edit(grid.GetRowFromClientId(rowId));
}

function UpdateRow(grid)
{
    grid.EditComplete();     
}

function InsertRow(grid)
{
    grid.EditingDirty = true;
    grid.EditComplete();     
}

function DeleteRow(rowId, grid)
{
    grid.Delete(grid.GetRowFromClientId(rowId)); 
}

function GetValue(controlID)
{
    var control = document.getElementById(controlID);
    
    if (control.type=="text" || control.type=="select-one")
        return control.value;
    return "";
}

function SetValue(dataItem, controlID, cellIndex)
{
    var control = document.getElementById(controlID);
    var value = dataItem.GetMember(cellIndex).Object;
    
    if (control.type=="text")
        control.value = value;
    else if (control.type=="select-one")
    {
        var options = control.getElementsByTagName("Option");
        for (i=0;i<options.length;i++)
        {
            if (options[i].innerHTML == value)
	            control.value = options[i].attributes["value"].value;
        }
    }
}

/****************************/
/* Decimal separator script */
/****************************/
function ChangePointAsComma(e, control)
{
    var keyCode;
    if (IsIE())
        keyCode = e.keyCode;
    else if (IsFirefox())
        keyCode = e.which;
        
    //If it already contains a comma, cancel event
    if (control.value.indexOf(',') != -1 && (keyCode == 46 || keyCode == 44))
    {
        if (IsIE())
            e.keyCode = null;
        else if (IsFirefox())
        {
            var newEvent = document.createEvent("KeyEvents");
            newEvent.initKeyEvent("keypress", true, true, 
                document.defaultView, 
                e.ctrlKey, e.altKey, e.shiftKey, 
                e.metaKey, 0, 0);
            e.preventDefault();
            e.target.dispatchEvent(newEvent);
        }
    }
    else if (keyCode == 46)
    {    
        //IsIE() and IsFireFox are defined in WebUIScript.js
        if (IsIE())
            e.keyCode = 44;
        else if (IsFirefox())
        {
            var newEvent = document.createEvent("KeyEvents");
            newEvent.initKeyEvent("keypress", true, true, 
                document.defaultView, 
                e.ctrlKey, e.altKey, e.shiftKey, 
                e.metaKey, 0, ",".charCodeAt(0));
            e.preventDefault();
            e.target.dispatchEvent(newEvent);
        }
    }
}

function CancelPointAndComma(e, control)
{
    var keyCode;
    if (IsIE())
        keyCode = e.keyCode;
    else if (IsFirefox())
        keyCode = e.which;
        
    //If keypress is comma or dot, cancel event
    if (keyCode == 46 || keyCode == 44)
    {
        if (IsIE())
            e.keyCode = null;
        else if (IsFirefox())
        {
            var newEvent = document.createEvent("KeyEvents");
            newEvent.initKeyEvent("keypress", true, true, 
                document.defaultView, 
                e.ctrlKey, e.altKey, e.shiftKey, 
                e.metaKey, 0, 0);
            e.preventDefault();
            e.target.dispatchEvent(newEvent);
        }
    }
}

/*****************/
/* Slider script */
/*****************/
function ChangeSliderPosition(value, valueIndex, imageArray, stepImage, selectedStepImage, currentValueId)
{
    var currentValue = document.getElementById(currentValueId);
    currentValue.value = value;
    for (i=0;i<imageArray.length;i++)
    {
        var img = document.getElementById(imageArray[i]);
        if (i != valueIndex)
        {
            img.src = stepImage;
        }
        else
        {
            if (img.src.indexOf(selectedStepImage) == -1)
                img.src = selectedStepImage;
            else
            {
                img.src = stepImage;
                currentValue.value = -1;
            }
        }
    }
}

/**********************/
/* ImageEditor script */
/**********************/
function UpdateSelectedFile(fileName, imageIdToRefresh, selectedImageId)
{
    var selectedValue = document.getElementById(selectedImageId);
    selectedValue.value = fileName;

    if (IsFirefox())
        return;
        
    if (imageIdToRefresh != null && fileName != '')
    {
        var image = document.getElementById(imageIdToRefresh);
        image.src = fileName;
    }
}

function ValidateImage(source, args)
{
    if (args.Value.toLowerCase().indexOf('jpg') == -1 &&
        args.Value.toLowerCase().indexOf('jpeg') == -1 &&
        args.Value.toLowerCase().indexOf('gif') == -1 &&
        args.Value.toLowerCase().indexOf('bmp') == -1 &&
        args.Value.toLowerCase().indexOf('png') == -1)
        args.IsValid = false;
    else
        args.IsValid = true;
}

/*************************************/
/* TimeOfDayEditor validation script */
/*************************************/
function TimeOfDayEditorClientValidate(source, clientside_arguments)
{         
   var myTime = clientside_arguments.Value;
   var amPos = myTime.indexOf('AM') ;
   var pmPos = myTime.indexOf('PM') ;
    
    if (myTime.length == 5) //Ex 12:56 ou 08:00
        clientside_arguments.IsValid=true;
    else if (myTime.length==7 || myTime.length==8)  //Ex. 12:56 AM ou 7:00 PM
    {
        if (amPos > -1 || pmPos > -1)
            clientside_arguments.IsValid=true;
        else
            clientside_arguments.IsValid=false;
    }else
        clientside_arguments.IsValid=false; 
}

/***********************/
/* StringEditor script */
/***********************/
function TruncateData(editor, maxLength)
{
    if (editor.value.length > maxLength)
        editor.value = editor.value.slice(0, maxLength);
}

/************/
/* PopupDiv */
/************/
var timeoutId = null;

function ShowPopupMessage(message)
{
    var divMain = document.getElementById('DivMain');
    var divInner = document.getElementById('DivInner');
    var lblText = document.getElementById('PopupDiv_LblText');
    lblText.innerHTML = message;
    divInner.style.position = 'absolute';
    divInner.style.left = (document.documentElement.clientWidth / 2 - 100) + 'px';
    divInner.style.top = ((document.documentElement.clientHeight + document.documentElement.scrollTop) / 2) + 'px';
    ShowPopupDiv('DivMain');
    SetTimer();
}

function SetTimer()
{
    timeoutId = window.setTimeout("HidePopupDiv();", 5000);
}

function ClearTimer()
{
    if (timeoutId != null)
        window.clearTimeout(timeoutId);
    timeoutId = null;
}

function HidePopupDiv()
{
    var divMain = document.getElementById('DivMain');
    divMain.style.visibility = 'hidden';
    ClearTimer();
}

function ShowPopupDiv(divId)
{
    var div = document.getElementById(divId);

    div.style.width = document.body.clientWidth + 'px';
    div.style.height = document.body.clientHeight + 100 + 'px';

    if (div.style.visibility != 'visible')
        div.style.visibility = 'visible';
    else
    {
        div.style.visibility = 'hidden';
        ClearTimer();
    }
    return false;
}
