﻿function NormalizeString(pStrString)
{
    var rgxEndsInWhiteSpace   = new RegExp("^\\s*|\\s*$", "g");
    var rgxMultipleWhiteSpace = new RegExp("\\s\\s+", "g");
		  
    pStrString = pStrString.replace(rgxEndsInWhiteSpace, "");
    pStrString = pStrString.replace(rgxMultipleWhiteSpace, " ");

    return pStrString;
}

function ToggleDiv(pObjElement)
{
    var strHiddenClass  = 'cblock-hidden';
    var strVisibleClass = 'cblock-visible';

    if(document.getElementById(pObjElement).className == strHiddenClass)
        document.getElementById(pObjElement).className = strVisibleClass;
    else
        document.getElementById(pObjElement).className = strHiddenClass;
}

function OpenWindow(pStrUrl, pIntWidth, pIntHeight)
{
    var objWindow = window.open(pStrUrl, "OpenWindow", "toolbar=no,menubar=no,status=no,width=" + pIntWidth + ", height=" + pIntHeight + ",left=" + ((screen.width-pIntWidth)/2) + ",top=" + ((screen.height-pIntHeight)/2));
    objWindow.focus();
}
function OpenContactForm(pStrContentId, pStrSndParam)
{
    if (OpenContactForm.arguments.length == 0) {
        OpenWindow("ContactForm.aspx?id=undefined&doc=undefined", 500, 670);
    } else {
        OpenWindow("ContactForm.aspx?id=" + pStrContentId + "&amp;doc=" + pStrSndParam, 500, 670);
    }
}
function OpenOrderForm(pStrContentId)
{
    OpenWindow("ContactForm.aspx?id=undefined&amp;doc=" + pStrContentId, 500, 670);
}

function check_fields(pStrField1, pStrField2) {
    var TextFieldValue1 = document.forms["frmContact"][pStrField1].value;
    var TextFieldValue2 = document.forms["frmContact"][pStrField2].value;
    if ((TextFieldValue1 == "") || (TextFieldValue1 == " ") || (TextFieldValue1 == "0")) {
        var FieldNull1 = "null";
    }
    if ((TextFieldValue2 == "") || (TextFieldValue2 == " ") || (TextFieldValue2 == "0")) {
        var FieldNull2 = "null";
    }
    if ((FieldNull1 == "null") && (FieldNull2 == "null")) {
        alert('Veuillez ajouter le nombre de copies des actes s.v.pl.');
        return false;
    } else {
        return true;
    }
}

function OpenActForm(pStrFormId) {
    if (pStrFormId.length > 0) {
        var pStrFormName = "Form";
        if (pStrFormId == "adn") {
            pStrFormName += "1";
        }
        if (pStrFormId == "adm") {
            pStrFormName += "2";
        }
        if (pStrFormId == "add") {
            pStrFormName += "3";
        }
        pStrFormName += ".aspx";
        OpenWindow(pStrFormName, 500, 670);
    }
}

function JumpToUrl(pStrUrl)
{
    if(pStrUrl != '')
        window.location = pStrUrl;
}

function Resize(pStrImage, pIntMax)
{
    objImage = new Image;
    objImage.src = pStrImage.src;

    var intImageWidth = 0;
    var intImageHeight = 0;
    var newWidth = 0;
    var newHeight = 0;

    intImageWidth = pStrImage.style.width.replace('px','');
    intImageHeight = pStrImage.style.height.replace('px','');

    if (pStrImage.style.width.length == 0)
        intImageWidth  = objImage.width;

    if (pStrImage.style.height.length == 0)
        intImageHeight = objImage.height;
    
    var xRatio = intImageHeight/intImageWidth;

    if (intImageWidth > pIntMax || intImageHeight > pIntMax) {
	    if (intImageWidth > pIntMax) {
		    newWidth = pIntMax;
            newHeight = newWidth * xRatio;
	    } else {
		    newHeight = pIntMax;
		    newWidth = newHeight / xRatio;
	    }
    } else {
	    newWidth = intImageWidth;
	    newHeight = intImageHeight;
    }

    pStrImage.width  = newWidth;
    pStrImage.height = newHeight;
        
    pStrImage.style.width  = newWidth  + "px";
    pStrImage.style.height = newHeight + "px";
}

var isToggled = false;
function ToggleAllDetails()
{
    var strHiddenClass  = 'cblock-hidden';
    var strVisibleClass = 'cblock-visible';
    var strName = 'AdressBookContact';
    
    var imageTop = document.getElementById('imgToggleAllDetailsTop');
    var contacts = document.getElementsByTagName('div');

	for(i=0;i<contacts.length;i++)
	{
		if(isToggled == false && (contacts[i].className == strVisibleClass || contacts[i].className == strHiddenClass))
        {
            imageTop.alt = "Reduire tout";
            imageTop.src = "/images/collapse.jpg";
            contacts[i].className = strVisibleClass;
            document.getElementById('tr_' + contacts[i].id).style.backgroundColor = '#D8D8D8';
        }
        else if(isToggled == true && (contacts[i].className == strVisibleClass || contacts[i].className == strHiddenClass))
        {
            imageTop.alt = "Etendre tout";
            imageTop.src = "/images/expand.jpg";
            contacts[i].className = strHiddenClass;
            document.getElementById('tr_' + contacts[i].id).style.backgroundColor = '#ffffff';
        }
	}

	isToggled = !isToggled;	
	
}

function ToggleDetails(pStrElement, pObjElement, pStrAction)
{
    var strHiddenClass  = 'cblock-hidden';
    var strVisibleClass = 'cblock-visible';

    switch(pStrAction)
    {
    	case 'click':
            if(document.getElementById(pStrElement).className == strHiddenClass)
            {
                document.getElementById(pStrElement).className = strVisibleClass;
                pObjElement.style.backgroundColor = '#D8D8D8';
            }
            else
            {
                document.getElementById(pStrElement).className = strHiddenClass;
            }
        
    		break;
    	case 'mover':
            pObjElement.style.cursor = 'pointer';
            pObjElement.style.backgroundColor = '#D8D8D8';
        
    		break;
    	case 'mout':
            pObjElement.style.cursor = 'auto';

            if(document.getElementById(pStrElement).className == strVisibleClass)
            {
                pObjElement.style.backgroundColor = '#D8D8D8';
            }
            else
            {
                pObjElement.style.backgroundColor = '';
            }
        
    		break;
    }
}

var arrCategories = new Array();
var arrCategories2 = new Array();
var arrContact = new Array();
var NotFoundCat = 0;

function CheckaddItemToSelectBox(varSelCat, varTitle, varID) {
    var tbodyName = "tbody_" + varID;
    var tbodyElement = document.getElementById(tbodyName);
	if ((tbodyElement.innerHTML != " ") && (tbodyElement.innerHTML != "") && (tbodyElement.innerHTML != "&nbsp;")) {
		AddItemToSelectBox(varSelCat, varTitle, varID);
	}
}

function AddItemToSelectBox(pStrSelectBoxName, pStrText, pStrValue)
{
    if(document.getElementById(pStrSelectBoxName) != null)
    {
        if(pStrSelectBoxName != '' && pStrText != '' && pStrValue != '')
        {
            var objItem = new Option(String(unescape(pStrText)), String(pStrValue), false, false);
            var objList = document.getElementById(pStrSelectBoxName);

            var NumCount = arrCategories.length;
            arrCategories[NumCount] = new Object();
            arrCategories[NumCount]["Text"] = String(unescape(pStrText));
            arrCategories[NumCount]["Value"] = String(pStrValue);
            arrCategories2[NumCount] = new Object();
            arrCategories2[NumCount]["Text"] = String(unescape(pStrText));
            arrCategories2[NumCount]["Value"] = String(pStrValue);

            objList.options[objList.length] = objItem;
        }
    }
}

function AddContactToArray(varCid, varType, varCat, varContact) {
    var NumCount = arrContact.length;
    arrContact[NumCount] = new Object();
    arrContact[NumCount]["cid"] = String(varCid);
    arrContact[NumCount]["type"] = varType;
    arrContact[NumCount]["cat"] = varCat;
    arrContact[NumCount]["contact"] = unescape(varContact);
}

function SelectAdressBookValue(category)
{
    var ddl = document.getElementById('selCat');

    for (i=0; i< ddl.options.length; i++)
    {
        if(ddl.options[i].text == category)
        {
        	    ddl.selectedIndex = i;
        	    IsolateDiv('selCat', 'div', 'select');
        	    break;
        }
    }
}

function IsolateDiv(pStrElement, pStrDivName, pStrAction)
{
    var objCatSelect = document.getElementById(pStrElement);
    var objCatSelectSelectedIndex = objCatSelect.selectedIndex;
    var objCatSelectSelectedText = objCatSelect.options[objCatSelect.selectedIndex].text;
    var objCatSelectSelectedValue = objCatSelect.options[objCatSelect.selectedIndex].value;
/// CLEAR ///
    if (pStrAction == "clear") {
        for (var i = 0; i < arrContact.length; i++) {
            var varShowId = arrContact[i]["cid"];
            var objQryFilter = document.getElementById('idqryfilter');
            if ((objQryFilter.value.length == 0) || ((objQryFilter.value.length > 0) && (objQryFilter.value == varShowId))) {
                if (navigator.appName == "Microsoft Internet Explorer") {
                    if (objQryFilter.value.length == 0) {
                        document.getElementById('tr_' + varShowId + '_0').style.display = 'block';
                    }
                    document.getElementById('tr_' + varShowId + '_1').style.display = 'block';
                } else {
                    if (objQryFilter.value.length == 0) {
                        document.getElementById('tr_' + varShowId + '_0').style.display = 'table-row';
                    }
                    document.getElementById('tr_' + varShowId + '_1').style.display = 'table-row';
                }
            }
        }
        arrCategories2.length = 0;
        objCatSelect.length = 1;
        for (var i = 0; i < arrCategories.length; i++) {
            document.getElementById('div_'+arrCategories[i]["Value"]).style.display = 'block';
            arrCategories2[i] = new Object();
            arrCategories2[i]["Text"] = arrCategories[i]["Text"];
            arrCategories2[i]["Value"] = arrCategories[i]["Value"];
            var objItem = new Option(arrCategories[i]["Text"], arrCategories[i]["Value"], false, false);
            objCatSelect.options[objCatSelect.length] = objItem;
            var DivUserText = "user_text_" + arrCategories[i]["Value"];
            document.getElementById(DivUserText).style.display = "none";
        }
        objCatSelect.selectedIndex = 0;
        document.getElementById('query').value = '';

        document.getElementById("user_text_all").style.display = "none";
    }
/// CLEAR:END ///

/// SELECT ///
    if (pStrAction == "select") {
        for (var i = 1; i < objCatSelect.length; i++) {
            var varUserTextName = 'user_text_' + String(objCatSelect.options[i].value);
            document.getElementById(varUserTextName).style.display = 'none';
        }
        if (objCatSelectSelectedIndex == 0) {
            for (var i = 0; i < arrCategories2.length; i++) {
                var varDivName = 'div_' + String(arrCategories2[i]["Value"]);
                document.getElementById(varDivName).style.display = 'block';
            }
        } else {
            for (var i = 0; i < arrCategories2.length; i++) {
                var varDivName = 'div_' + String(arrCategories2[i]["Value"]);
                if (objCatSelectSelectedIndex == i + 1) {
                    document.getElementById(varDivName).style.display = 'block';
                } else {
                    document.getElementById(varDivName).style.display = 'none';
                }
            }
        }
    }
/// SELECT:END ///

/// SEARCH ///
    if (pStrAction == "search") {
        if (document.getElementById('query').value.length > 2) {
            var nullResult = 1;
            var varQuery = document.getElementById('query').value;
            var varQuerySmall = varQuery.toLowerCase();
            if (varQuerySmall.indexOf(" ") != -1) {
                var varQuerySmallF = varQuerySmall.substr(0, varQuerySmall.indexOf(" ")) + " " + varQuerySmall.substr(varQuerySmall.indexOf(" ")+1, varQuerySmall.length);
                var varQuerySmallL = varQuerySmall.substr(varQuerySmall.indexOf(" ")+1, varQuerySmall.length) + " " + varQuerySmall.substr(0, varQuerySmall.indexOf(" "));
            } else {
                var varQuerySmallF = varQuerySmall;
                var varQuerySmallL = varQuerySmall;
            }
            arrCategories2.length = 0;
            for (var i = 0; i < arrContact.length; i++) 
            {
                var varName = arrContact[i]["contact"];
                var varNameSmall = varName.toLowerCase();
                var varShowId = arrContact[i]["cid"];
                var varType = arrContact[i]["type"];
                var varCat = arrContact[i]["cat"];
                if ((varNameSmall.indexOf(varQuerySmallF) != -1) || (varNameSmall.indexOf(varQuerySmallL) != -1)) {
                    nullResult = 0;
                    if (navigator.appName == "Microsoft Internet Explorer") {
                        document.getElementById('tr_' + varShowId + '_0').style.display = 'block';
                        document.getElementById('tr_' + varShowId + '_1').style.display = 'block';
                    } else {
                        document.getElementById('tr_' + varShowId + '_0').style.display = 'table-row';
                        document.getElementById('tr_' + varShowId + '_1').style.display = 'table-row';
                    }

                    var varTest = 0;
                    for (var j = 0; j < arrCategories2.length; j++) {
                        if (arrCategories2[j]["Text"] == varType) {
                            varTest = 1;
                        }
                    }
                    if (varTest == 0) {
                        for (var j = 0; j < arrCategories.length; j++) {
                            if (arrCategories[j]["Text"] == varType) {
                                var StrValue = arrCategories[j]["Value"];
                            }
                        }
                        var NumCount = arrCategories2.length;
                        arrCategories2[NumCount] = new Object();
                        arrCategories2[NumCount]["Text"] = varType;
                        arrCategories2[NumCount]["Value"] = StrValue;
                    }
                } else {
                    document.getElementById('tr_' + varShowId + '_0').style.display = 'none';
                    document.getElementById('tr_' + varShowId + '_1').style.display = 'none';
                }
            }
            
            objCatSelect.length = 1;
            for (var i = 0; i < arrCategories.length; i++) {
                var varDivName = 'div_' + String(arrCategories[i]["Value"]);
                document.getElementById(varDivName).style.display = 'none';
            }

            for (var i = 0; i < arrCategories2.length; i++) {
                var mytext = arrCategories2[i]["Text"];
                var myvalue = arrCategories2[i]["Value"];
                var objItem = new Option(String(mytext), String(myvalue), false, false);
                objCatSelect.options[objCatSelect.length] = objItem;
                
                var varDivName = 'div_' + String(arrCategories2[i]["Value"]);
                document.getElementById(varDivName).style.display = 'block';
            }

            if (objCatSelectSelectedIndex != 0) {
                for (var i = 0; i < arrCategories2.length; i++) {
                    var varDivName = 'div_' + String(arrCategories2[i]["Value"]);
                    if (objCatSelectSelectedIndex == i + 1) {
                        document.getElementById(varDivName).style.display = 'block';
                    } else {
                        document.getElementById(varDivName).style.display = 'none';
                    }
                }
            }
        } else {
            alert("Veuillez entrez au moin 3 caractères s.v.pl.");
        }
        var Test = 0;
        for (var i = 1; i < objCatSelect.length; i++) {
            SpanUserTextName = "user_text_" + objCatSelect.options[i].value;
            if (document.getElementById(SpanUserTextName).style.display == "block") {
                Test = 1;
            }
        }
        if ((nullResult == 1) && (Test == 0)) {
            document.getElementById("user_text_all").style.display = "block";
        } else {
            document.getElementById("user_text_all").style.display = "none";
        }
    }
/// SEARCH:END ///
}

function GetTextValue(pObjElement)
{
    var intIndex = 0;
    var strOutput = "";

	  if (document.ELEMENT_NODE == null)
		{
    	document.ELEMENT_NODE = 1;
    	document.TEXT_NODE = 3;
		}

    if(pObjElement.childNodes != null)
    {
        for (intIndex = 0; intIndex < pObjElement.childNodes.length; intIndex++)
        {
            if (pObjElement.childNodes[intIndex].nodeType == document.TEXT_NODE)
                strOutput += pObjElement.childNodes[intIndex].nodeValue;
            else
                if (pObjElement.childNodes[intIndex].nodeType == document.ELEMENT_NODE && pObjElement.childNodes[intIndex].tagName == "BR")
                    strOutput += " ";
                else
                    strOutput += GetTextValue(pObjElement.childNodes[intIndex]);
        }
    }

    return NormalizeString(strOutput);
}

function CompareValues(pMixValueA, pMixValueB)
{
    var flValueA, flValueB;

    flValueA = parseFloat(pMixValueA);
    flValueB = parseFloat(pMixValueB);

    if (!isNaN(flValueA) && !isNaN(pMixValueB))
    {
        pMixValueA = flValueA;
        pMixValueB = flValueB;
    }

    if (pMixValueA == pMixValueB)
        return 0;
    if (pMixValueA > pMixValueB)
        return 1

    return -1;
}

function Visu(table)
{
    var i;
    
    for (i = 0; i < table.rows.length; i = i+1)
    {
        alert("VISU: " + GetTextValue(table.rows[i].cells[0]));
    }
}

function SwapElements(L,elmt1,elmt2)
{        
    var objTempElement11 = L.rows[elmt1].cloneNode(true);
    var objTempElement12 = L.rows[elmt1+1].cloneNode(true);
    var objTempElement21 = L.rows[elmt2].cloneNode(true);
    var objTempElement22 = L.rows[elmt2+1].cloneNode(true);

    L.replaceChild(objTempElement11,L.rows[elmt2]);
    L.replaceChild(objTempElement12,L.rows[elmt2+1]);
    L.replaceChild(objTempElement21,L.rows[elmt1]);
    L.replaceChild(objTempElement22,L.rows[elmt1+1]); 
}

function q_sort(T, left, right, col, blReverse)
{
    var low = left;
    var high = right;
    var pivot;

    if (high-low >= 2) 
    {
        pivot = GetTextValue(T.rows[low].cells[col]);
        
        while (left<right)
        {  
            if(blReverse)
            {
                while ((CompareValues(GetTextValue(T.rows[left].cells[col]),pivot)>=0) && (left<high) && (right>left)) 
                {
                    left = left + 2;
                }
                while ((CompareValues(GetTextValue(T.rows[right].cells[col]),pivot)<=0) && (right>low) && (right>=left)) 
                {
                    right = right - 2;
                }
            }
            else
            {
                while ((CompareValues(GetTextValue(T.rows[left].cells[col]),pivot)<=0) && (left<high) && (right>left)) 
                {
                    left = left + 2;
                }
                while ((CompareValues(GetTextValue(T.rows[right].cells[col]),pivot)>=0) && (right>low) && (right>=left)) 
                {
                    right = right - 2;
                }
            }
           
            if (left < right)
            {
                SwapElements(T,left,right);
            } 
        }
        SwapElements(T,low,right);
        
        q_sort(T, low, right - 2, col, blReverse);
        q_sort(T, right + 2, high, col, blReverse);
    }
    else
    {
        return;
    } 
}

function reverseTab(T)
{
    var i = 0;
    var max = T.rows.length/2
    
    for(i=0; i<max; i=i+2)
    {
        SwapElements(T,i,T.rows.length-i-2);
    }
}

function SortTable(pStrTableId, pIntPrimaryCol, pIntSecondaryCol, pIntGroupBy, pBlReverse)
{
    var isSorted = true;
    var objTable = document.getElementById(pStrTableId);
    var min = 0;
    var max = objTable.rows.length - 2;
    
    while(pIntPrimaryCol >= (objTable.rows[0].cells.length))
    {
        pIntPrimaryCol = pIntPrimaryCol - 1;
    }

    if (objTable.reverseSort == null)
        objTable.reverseSort = new Array();

    if (objTable.reverseSort[pIntPrimaryCol] == null)
    {
        var i = 0;        
        while(i < objTable.rows[0].cells.length)
        {
            if (i == pIntPrimaryCol)
            {
                objTable.reverseSort[i] = pBlReverse;
            }
            else
            {
                objTable.reverseSort[i] = null
            }
            i++;
        }        
        isSorted = false;
    }
    
    if(!isSorted)
    {
        q_sort(objTable,min,max, pIntPrimaryCol, false);          
    }
    else
    {
        reverseTab(objTable);
    }
}

function EnterDoClick(e)
{
    var key;

    if(window.event)
          key = window.event.keyCode;     //IE
    else
          key = e.which;     //firefox
    var NumberKey = Number(key);
    if (NumberKey == 13) {
        IsolateDiv('selCat', 'div', 'search');
        return false;
    }
}

function OnSubmitPost()
{
    var blResult = true;
    try
    {
        if(document.getElementById('post').value != 'true')
            blResult = false;
    }
    catch(e)
    {
        blResult = true;
    }    
    return blResult;
}

// ToolTip
wmtt = null;

document.onmousemove = updateWMTT;

function updateWMTT(e) {
    if (document.documentElement) {
            intScrollTop = document.documentElement.scrollTop;
            intScrollLeft = document.documentElement.scrollLeft;
    } else {
            intScrollTop = document.body.scrollTop;
            intScrollLeft = document.body.scrollLeft;
    }
	x = (document.all) ? window.event.x + intScrollLeft : e.pageX;
	y = (document.all) ? window.event.y + intScrollTop  : e.pageY;
	if (wmtt != null) {
		wmtt.style.left = (x + 15) + "px";
		wmtt.style.top 	= (y + 15) + "px";
	}
}

function showWMTT(id) {
	wmtt = document.getElementById(id);
	wmtt.style.display = "block";
}

function hideWMTT() {
	wmtt.style.display = "none";
}

function updateTTText(id, my_text) {
    wmtt = document.getElementById(id);
    wmtt.innerHTML = my_text;
}
function PrintPDF()
{
    document.getElementById('hiddenArea').value = "<html>" + document.childNodes[1].innerHTML + "</html>";
	document.forms[0].submit();
}