﻿var inputListName;
var zones;
var divMap;
var divMapText;
var tagWritten = false;
var changingBtnId = 'btnAreaSel';

var btnSrcList;
var btnSrcListOver;
var btnSrcModList;
var btnSrcModListOver;

// gruge pour external interface flash sur IE6
var map;

function InitMap(input, listZones, btnId, srcList, srcListOver, srcMod, srcModOver)
{
    var nbCol = 1;
    var html = "";
    divMap = $get("divMap");
    divMapText = $get("divMapText");

    inputListName = input;
    if (listZones != null && listZones.length > 0)
    {
        var tmpZones = listZones.split(";");
        if (tmpZones != null && tmpZones.length > 0)
        {
            var sp = Math.floor(tmpZones.length / nbCol); //Math.floor(tmpZones.length / 2);
            zones = new Array();
            for(var i = 0; i < tmpZones.length; i++)
            {
                var z = tmpZones[i].split("|");
                if (z != null && z.length >= 2)
                {
                    zones.push({ id: z[0], name: z[1], checked: (z.length == 3 && z[2] == "1") });
                }
            }
            html = '<table border="0" cellpadding="0" cellspacing="0">';
            for(var j = 0; j < sp; j++)
            {
                html += '<tr>';
                for(var k = 0; k < nbCol; k++)
                {
                    if ((j + sp * k) >= zones.length)
                        html += '&nbsp;';
                    else
                        html += MakeCheckbox(zones[j + sp * k]);
                }
                html += '<tr>';
            }
            html += '</table>';
            divMapText.innerHTML = html;
        }
    }
    changingBtnId = btnId;
    btnSrcList = srcList;
    btnSrcListOver = srcListOver;
    btnSrcModList = srcMod;
    btnSrcModListOver = srcModOver;
}
function MakeCheckbox(zone)
{
    var res = "";
    if (zone != null)
    {
        var id = 'chkZone_' + zone.id;
        res = '<td style="vertical-align:middle"><input type="checkbox" id="' + id + '" onclick="ZoneClicked(this);" value="' + zone.id + '"';
        if (zone.checked)
            res += ' checked';
        res += '/></td>';
        res += '<td style="vertical-align:middle"><label for="' + id + '">' + zone.name + '</label></td>';
    }
    return res;
}
function ZoneClicked(chk)
{
    if (chk != null)
    {
        var lst = "";
        for (var i = 0; i < zones.length; i ++)
        {
            if (zones[i].id == chk.value)
                zones[i].checked = (chk.checked);
            if (zones[i].checked)
            {
                if (lst.length > 0) lst += ";";
                lst += zones[i].id;
            }
        }
		var input = document.getElementById(inputListName);
		if (input)
			input.value = lst;
    }
}
function HideDiv(div)
{
	ToggleDiv(div, false);
}
function ToggleDiv(div, show)
{
	if (div)
	{
		var d = (div.display ? div : div.style);
		var libShow = (arguments.length < 2) ? ((d.display == 'none') ? 'block' : 'none') : (show ? 'block' : 'none');
		d.display = libShow;
	}
	return false;
}
function ToggleVisibility(div, show)
{
	if (div)
	{
		var d = (div.visibility ? div : div.style);
		var libShow = (arguments.length < 2) ? ((d.visibility == 'hidden') ? 'visible' : 'hidden') : (show ? 'visible' : 'hidden');
		d.visibility = libShow;
	}
	return false;
}

function ShowMap(id, src, params)
{
    if (tagWritten == false && divMap.innerHTML.length == 0)
        WriteMapTag(divMap, id, src, params);
    ToggleVisibility(divMap);
	return false;
}

function SetSelection(list)
{
	if (inputListName != null && inputListName.length > 0)
	{
		var input = document.getElementById(inputListName);
		if (input)
		{
			input.value = list;
		}
		UpdateChkList(list);
	}
}
function UpdateChkList(lst)
{
    var txt = "";
    if (lst != null)
    {
        var numList = lst.split(";");
        for (var i = 0; i < zones.length; i++)
        {
            var bChecked = false;
            for (var j = 0; j < numList.length; j++)
            {
                if (zones[i].id == numList[j])
                {
                    bChecked = true;
                    break;
                }
            }
            var chk = document.getElementById('chkZone_' + zones[i].id);
            chk.checked = bChecked;
            zones[i].checked = bChecked;
        }
    }
}
function MapOk(list)
{
    SetSelection(list);
//	HideDiv(divMap);
    ToggleVisibility(divMap, false);
    RefreshBtnImage();
}
function MapCancel()
{
    SetSelection("");
//	HideDiv(divMap);
    ToggleVisibility(divMap, false);
    RefreshBtnImage();
}
function WriteMapTag(div, id, src, params)
{
    var width = 754;
    var height = 644;
    
    var tag = "<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\""
        + " codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0\""
        + " width=\"" + width + "\" height=\"" + height + "\" id=\"" + id + "\" name=\"" + id + "\">"
        + "	<param name=\"movie\" value=\"" + src + "?" + params + "\"/>"
        + " <param name=\"quality\" value=\"high\"/>"
        + "	<param name=\"menu\" value=\"false\"/>"
        + "	<param name=\"allowScriptAccess\" value=\"always\"/>"
		+ "	<embed src=\"" + src + "\" quality=\"high\" id=\"" + id + "\" name=\"" + id + "\" menu=\"false\""
		+ "		allowScriptAccess=\"always\" FlashVars=\"" + params + "\""
		+ "		pluginspage=\"http://www.macromedia.com/go/getflashplayer\""
		+ "		type=\"application/x-shockwave-flash\""
		+ "		width=\"" + width + "\" height=\"" + height + "\"></embed>"
		+ "</object>";
	if (div != null)
	    div.innerHTML = tag;
	tagWritten = true;
	map = $get(id);
	return tag;
}
function HasSelectedZones()
{
    for(var i = 0; i < zones.length; i++)
    {
        if (zones[i].checked)
            return true;
    }
    return false;
}
function ChangeImage(img, src)
{
    if (src != undefined && src != null && src.length > 0)
    {
        img.oldSrc = img.src;
        img.src = src;
    }
    else if (img.oldSrc != undefined)
        img.src = img.oldSrc;
}
function ToggleList()
{
    ToggleDiv(divMapText);

//    var row = null;
//    var rows = document.getElementsByTagName("tr");
//    for(var i = 0; i < rows.length; i++)
//    {
//        var tr = rows[i];
//        if (tr.id != null && tr.id.length > 0 && tr.id.indexOf("rowMapText") >= 0)
//        {
//            alert(tr.id);
//            alert(tr.style.display);
//            row = tr;
//        }
//    }
//    if (row != null)
//        ToggleDiv(row);
//    
    RefreshBtnImage();

    return false;
}

function RefreshBtnImage()
{
	var d = (divMapText.display ? divMapText : divMapText.style);
	var d = (d.display == 'block');
	var sel = HasSelectedZones();
	ChangeImage($get(changingBtnId), sel ? (d ? btnSrcModListOver : btnSrcModList) : (d ? btnSrcListOver : btnSrcList));
}
