﻿//****************************************************************************************************************
//11/04/2008 GTA.
//****************************************************************************************************************

//init EsusPanel Array -> Contain all JS esusPanel object (if prorties "ActivateClientSideApi" is true)
var GTPanelTab = new Array();
//Contains resource url for image
var ImageUrlResource = new Array();
var NameResource = new Array();

function GetImageUrlByName(name)
{
    var pos = 0;
    for(i=0; i<  NameResource.length; i++)
    {
        if (NameResource[i] == name)
        {
            pos = i;
            break;
        }
    } 
    return ImageUrlResource[pos];
}

//On Save form -> Validate function in page
function OnSaveForm()
{
    //First : Test if Array of validators exist.
    if (typeof(Page_Validators) != "undefined")
    {
        //Second : Validate all validators in page
        for (i=0; i<Page_Validators.length ; i++)
        {
            ValidatorValidate(Page_Validators[i]);
        }
        for (i=0; i<=Page_Validators.length -1 ; i++)
        {
            //Third : test il validators is valid or not.
            if (Page_Validators[i].isvalid  == false)
            {
                //Hidde overlay if page is not valid.
                try
                {
                    document.getElementById("overlay").style.display="none";
                }
                catch (err) {}
                
                document.getElementById(Page_Validators[i].controltovalidate).style.border = "2px solid red";
                //For expand EsusPanel                                
                try
                {
                    for (j=0; j <= EsusPanelTab.length; j++)
                    {
                        if (document.getElementById(Page_Validators[i].controltovalidate).id.indexOf(EsusPanelTab[j]) != -1)
                        {
                            eval(EsusPanelTab[j]).ExpandPanel();
                            break;
                        }
                    }
                }
                catch (err){}
                //for telekik input controls
                try
                {
                    if (document.getElementById(Page_Validators[i].controltovalidate + "_text") != null)
                        document.getElementById(Page_Validators[i].controltovalidate + "_text").style.border = "2px solid red";
                }
                catch (err) {}
            }
        }
    }
}
//Collapsing function For EsusPanel
function CollapseGTPanel(ContentFatherClientID, ContentChildClientID, HeightMin, HeightMax, ImageClientID, SrcCollapse, SrcExpand, StateSaveClientID)
{
    if (document.getElementById(ContentChildClientID).style.display == "block")
    {
        document.getElementById(ContentChildClientID).style.display = "none";
        document.getElementById(ContentFatherClientID).style.height = HeightMin;
        document.getElementById(ImageClientID).src = SrcExpand.replace("~","");
        document.getElementById(StateSaveClientID).value = "1";
    }
    else
    {
        document.getElementById(ContentChildClientID).style.display = "block";
        document.getElementById(ContentFatherClientID).style.height = HeightMax;
        document.getElementById(ImageClientID).src = SrcCollapse.replace("~","");
        document.getElementById(StateSaveClientID).value = "0";
    }        
}
//Collapsing function For EsusPanel
function CollapsePn(ContentFatherClientID, ContentChildClientID, HeightMin, HeightMax, ImageClientID, SrcCollapse, SrcExpand, StateSaveClientID)
{
    document.getElementById(ContentChildClientID).style.display = "none";
    document.getElementById(ContentFatherClientID).style.height = HeightMin;
    document.getElementById(ImageClientID).src = SrcExpand.replace("~","");
    document.getElementById(StateSaveClientID).value = "1";      
}
//Expanding function For EsusPanel
function ExpandPn(ContentFatherClientID, ContentChildClientID, HeightMin, HeightMax, ImageClientID, SrcCollapse, SrcExpand, StateSaveClientID)
{
    document.getElementById(ContentChildClientID).style.display = "block";
    document.getElementById(ContentFatherClientID).style.height = HeightMax;
    document.getElementById(ImageClientID).src = SrcCollapse.replace("~","");
    document.getElementById(StateSaveClientID).value = "0";
} 

//Show EsusOverlayPanel on mouse coordonnates (x y) 
function ShowOverlayDivOnMouseCoordinates(e, ClientID, Inverse, translationX, translationY) 
{
    if (e == null)
        e = window.event;

    var overlayPanel = document.getElementById(ClientID);

    var tX = parseInt(translationX.replace("px",""));
    var tY = parseInt(translationY.replace("px",""));

    var eventX = Event.pointerX(e);
    var eventY = Event.pointerY(e);

    var offsetParent = Element.getOffsetParent(overlayPanel);

    if (offsetParent != null)
    {
        eventX = eventX - offsetParent.offsetLeft;
        eventY = eventY - offsetParent.offsetTop;
    }

    if (overlayPanel.style.display == "none")
    {
        eventY = eventY - tY; 
        eventX = eventX + tX;    

        if (Inverse)
        {
            var widthOfClientId = parseInt(overlayPanel.style.width.replace("px",""));        
            eventX = eventX - widthOfClientId;
        }

        overlayPanel.style.display = "block";
        overlayPanel.style.top = eventY + "px"; 
        overlayPanel.style.left = eventX + "px";    
    }
    else
    {
        overlayPanel.style.display = "none";
    }
} 
//Show an EsusOverlayPanel div
function ShowOverlayDiv(ClientID)
{
    var htmlElement = document.getElementById(ClientID);
    if (htmlElement.style.display == "none")
        htmlElement.style.display = "block";
    else
        htmlElement.style.display = "none";
}
//onclick Client Side injector
function InjectOnClickEventInControl(ClientID, TargetControlID)
{
    var target=document.getElementById(TargetControlID);
    target.style.cursor = "pointer";
    target.onclick = function(){
        ShowOverlayDiv(ClientID);
    }
}
//onclick Client Side injector
function InjectOnMouseOverEventInControl(ClientID, TargetControlID)
{
    var target=document.getElementById(TargetControlID);
    target.style.cursor = "pointer";
    target.onmouseover = function(){
        ShowOverlayDiv(ClientID);
    }
    target.onmouseout = function(){
        ShowOverlayDiv(ClientID);
    }
}
//onclick Client Side injector
function InjectOnClickEventInControlMC(ClientID, TargetControlID, Inverse, translationX, translationY)
{
    var target=document.getElementById(TargetControlID);
    target.style.cursor = "pointer";
    target.onclick = function(e) { ShowOverlayDivOnMouseCoordinates(e, ClientID,Inverse,translationX,translationY); }
}


//onmouseover, mouseout Client Side injector
function InjectOnMouseOverEventInControlMC(ClientID, TargetControlID, Inverse, translationX, translationY)
{
    var target=document.getElementById(TargetControlID);
    target.style.cursor = "pointer";
    target.onmouseover = function(){
        ShowOverlayDivOnMouseCoordinates(ClientID,Inverse,translationX,translationY);
    }
    target.onmouseout = function(){
        ShowOverlayDivOnMouseCoordinates(ClientID,Inverse,translationX,translationY);
    }
}

if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();