var dom = (document.getElementById) ? true : false;
var ns5 = ((navigator.userAgent.indexOf("Gecko")>-1) && dom) ? true: false;
var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
var ns4 = (document.layers && !dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;

StringBuilder = function()
{
 this.arrStr = new Array();
 this.Append = function( inVAL )
 {
  this.arrStr[this.arrStr.length] = inVAL;
 }
 this.toString = function()
 {
  return this.arrStr.join('');
 }
 this.Init = function()
 {
  this.arrStr = null;
  this.arrStr = new Array();
 }
}

var calledPalette;

var objSB = new StringBuilder();

var arrMAT = [['FFFFFF', 'Blanc R M61'],['FFECD9', 'Blanc Cassé R M62 '],['ffffcd', 'Ananas R M63'],['f9e4b5', 'Eglantine M64'],['ffd38e', 'Mat 130 Paille '],['f89f43', 'Mat 130 Orge'],['cfe1a7', 'Mat 130 Vert'],['59625d', 'Mat 130 Gris Foncé'],['d7e3d9', 'Perforé']];
var arrSATINE = [['fffff2', 'Blanc R S50'],['FFFCEC', 'Blanc Ivoire R S51'],['fee0ba', 'Saumon S52'],['CC3300', 'Brique S53'],['CBB9B6', 'Beige S54'],['fedcae', 'Coquille Oeuf S55'],['cae2e2', 'Lavande S56'],['d1f3d2', 'Peuplier S57'],['d6e2d8', 'Translucide T01']];
var arrLAQUE = [['FFFFFF', 'Blanc 01'],['0b0b0b', 'Noir 02'],['1c1c1c', 'Graphite 03'],['fcfcfe', 'Vanilla 04'],['e6e7d5', 'Mastic 05'],['ffcb9b', 'Amande 06'],['ff3328', 'Orange 10'],['fd9b3a', 'Clémentine 11'],['ffca39', 'Jaune Blé 12'],['ffcc33', 'Jaune Vif 13'],['ffcc66', 'Soleil 14'],['feff99', 'Camomille 15'],['cefbd4', 'Vert Pastel 16'],['32ccca', 'Lagon 17'],['54d73b', 'Prairie 18'],['009999', 'Tropique 19'],['009865', 'Chlorophile 20'],['029a35', 'Epicéa 21'],['0f2c2a', 'Vert Anglais 22'],['003466', 'Petrole 23'],['009aca', 'Oceane 24'],['99ffff', 'Myosotis 25'],['3199cc', 'Pacifique 26'],['3266cc', 'Muscari 27'],['ccccfe', 'Lilas 28'],['0066cb', 'Bleu Roi 29'],['000099', 'Outremer 30'],['Bleu Marine', '31']];




// Ne pas modifier la palette de réserve - sert au resize
var arrRESERVE = [['', '']];

var intTdDisp = intTblDisp = 0;
var i = j = k = 0;
var objCurrent = objMAT = objSATINE = objLAQUE = objDAIM = objTRANSLUCIDE = objMETAL = objRESERVE = objLegend = objSelected = objSelectedTxt = objGlobal = null;
var strColor = '', strColorTxt = '', strCurrent = '';

fctTblFeed = function()
{
 if (intTdDisp != 16) {
  for (i = intTdDisp; i < 16; i++) {
   objSB.Append('<td class="tdColor"><a class="none" href="#">&nbsp;</a></td>');
   intTblDisp++;
  }
 }
 if (intTblDisp != 256) {
  for (i = intTblDisp; i < 256; i++) {
   if (i % 16 == 0) {objSB.Append('</tr><tr>');}
   objSB.Append('<td class="tdColor"><a class="none" href="#">&nbsp;</a></td>');
  }
 }
}
fctOver = function(strColor, strTxt)
{
 //objPreview.style.backgroundColor = strColor;
 //objPreviewTxt.innerHTML = strColor + '<br>' + strTxt;
}

fctOut = function()
{
 //objPreview.style.backgroundColor = '';
 //objPreviewTxt.innerHTML = '';
}

fctSetColor = function(strColor, strTxt)
{
 strCurrent = strColor;
 objSelected.style.backgroundColor = strColor;
 objSelectedTxt.innerHTML = /*strColor + */'<br>' + strTxt;
}

fctSelect = function(strArr, strTxt)
{
 objLegend.innerHTML = '&nbsp;' + strTxt + '&nbsp;';
 objMAT.style.display = (strArr == 'SATINE') ? 'block' : 'none';
 objSATINE.style.display = (strArr == 'MAT') ? 'block' : 'none';
 objLAQUE.style.display = (strArr == 'LAQUE') ? 'block' : 'none';
 objRESERVE.style.display = (strArr == 'RESERVE') ? 'block' : 'none';// Palette de réserve
}

fctHide = function()
{
 fctReset();
 objGlobal.style.display = 'none';
 objCurrent = null;
}

fctReset = function()
{
 objSelected.style.backgroundColor = '';
 objSelectedTxt.innerHTML = '';
 strCurrent = '';
}

fctOk = function()
{
 var strColor;
 //objCurrent.value = strCurrent.toUpperCase();
 document.forms[0].textecouleur.style.backgroundColor = strCurrent.toUpperCase();
 document.forms[0].codecouleur.value = strCurrent.toUpperCase();

 colorName = objSelectedTxt.innerHTML.replace('<BR>','').replace('<br>','');
 document.forms[0].nomcouleur.value = colorName

 if (strCurrent.toUpperCase() == "#FFFFFF")
 	document.forms[0].textecouleur.value = colorName;
else
	document.forms[0].textecouleur.value = "";
	
 fctHide();
}

fctShow = function(objForm,Palette)
{
 if (Palette == undefined || Palette == '' )
 {
	 alert ('Veuillez choisir un aspect pour la toile, merci');
	 return;
 }

 if (objForm) {
  objCurrent = objForm;

  if (objForm.value + '' != '') {
   strColor = objForm.value.replace('#', '');
   fctSetColor('#' + strColor, strColorTxt)
  } else {
   fctReset();
  }
 }

 if (objCurrent) {
  var w = h = t = l = 0;
  if (self.innerHeight) {
   w = self.innerWidth;
   h = self.innerHeight;
  } else if (document.documentElement && document.documentElement.clientHeight) {
   w = document.documentElement.clientWidth;
   h = document.documentElement.clientHeight;
  } else if (document.body) {
   w = document.body.clientWidth;
   h = document.body.clientHeight;
  }
  if (self.pageYOffset) {
   l = self.pageXOffset;
   t = self.pageYOffset;
  } else if (document.documentElement && document.documentElement.scrollTop) {
   l = document.documentElement.scrollLeft;
   t = document.documentElement.scrollTop;
  } else if (document.body) {
   l = document.body.scrollLeft;
   t = document.body.scrollTop;
  }
  if (objGlobal.style.display != 'block') {objGlobal.style.display = 'block';}
  objGlobal.style.top = parseInt(mouseY - 15 ) + 'px';
  objGlobal.style.left = parseInt(mouseX + 15 ) + 'px';
  //objGlobal.style.top = parseInt(((objGlobal.offsetHeight)) + t, 15) + 'px';
  //objGlobal.style.left = parseInt(((objGlobal.offsetWidth)) + l, 15) + 'px';
 }

 if (Palette != undefined)
 {
	fctSelect(Palette,Palette);
	calledPalette = Palette;
 }
}

var mouseX,mouseY;
function trackMouse(evt) {
	mouseX = (ns4||ns5)? evt.pageX: window.event.clientX + document.body.scrollLeft;
	mouseY = (ns4||ns5)? evt.pageY: window.event.clientY + document.body.scrollTop;
	
}


fctLoad = function()
{
 var objDiv = document.createElement('DIV');
 objDiv.id = 'objCP';
 objDiv.style.display = 'inline';
 document.body.appendChild(objDiv);
 objDiv.innerHTML = objSB.toString();
 //objPreview = document.getElementById('objPreview');
 objSelected = document.getElementById('objSelected');
 //objPreviewTxt = document.getElementById('objPreviewTxt');
 objSelectedTxt = document.getElementById('objSelectedTxt');
 objGlobal = document.getElementById('tblGlobal');
 objMAT = document.getElementById('tblSATINE');
 objSATINE = document.getElementById('tblMAT');
 objLAQUE = document.getElementById('tblLAQUE');
 objRESERVE = document.getElementById('tblRESERVE');// Palette de réserve
 objLegend = document.getElementById('objLegend');
}

objSB.Append('<table id="tblGlobal" class="tblGlobal" border="0" cellpadding="0" cellspacing="0"><tr><td class="tdContainer"><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr>');

if (calledPalette == "SATINE")
	objSB.Append('<td width="24%" align="center"><input type="button" value="MAT" class="btnPalette" onClick="fctSelect(\'MAT\', \'MAT\');"></td>');
if (calledPalette == "MAT")
	objSB.Append('<td width="24%" align="center"><input type="button" value="SATINE" class="btnPalette" onClick="fctSelect(\'SATINE\', \'SATINE\');"></td>');
if (calledPalette == "LAQUE")
	objSB.Append('<td width="24%" align="center"><input type="button" value="LAQUE" class="btnPalette" onClick="fctSelect(\'LAQUE\', \'LAQUE\');"></td>');
// Palette de réserve
if (calledPalette == "RESERVE")
	objSB.Append('<td width="24%" align="center"><input type="button" value="RESERVE" class="btnPalette" onClick="fctSelect(\'RESERVE\', \'RESERVE\');"></td>');
	
objSB.Append('</tr></table></td></tr><tr><td class="tdContainer"><fieldset><legend align="top" id="objLegend"></legend><table id="tblContainer" class="tblContainer" border="0" cellpadding="0" cellspacing="0"><tr><td class="tdContainer">');



objSB.Append('<table id="tblSATINE" class="tblColor" border="0" cellpadding="0" cellspacing="0"><tr>');
for (i = 0; i < arrSATINE.length; i++) {
 if (intTblDisp % 16 == 0 && intTdDisp != 0) {
  objSB.Append('</tr><tr>');
  intTdDisp = 0;
 }
 strColor = '' + arrSATINE[i][0];
 strColorTxt = '' + arrSATINE[i][1];
 objSB.Append('<td class="tdColor"><a class="color" href="javascript:fctSetColor(\'#' + strColor + '\', \'' + strColorTxt + '\');" style="background-color:#' + strColor + ';" onMouseOver="fctOver(\'#' + strColor + '\', \'' + strColorTxt + '\');" onMouseOut="fctOut();">&nbsp;</a></td>');
 intTdDisp++;
 intTblDisp++;
}

objSB.Append('<table id="tblMAT" class="tblColor" border="0" cellpadding="0" cellspacing="0"><tr>');
for (i = 0; i < arrMAT.length; i++) {
 if (intTblDisp % 16 == 0 && intTdDisp != 0) {
  objSB.Append('</tr><tr>');
  intTdDisp = 0;
 }
 strColor = '' + arrMAT[i][0];
 strColorTxt = '' + arrMAT[i][1];
 objSB.Append('<td class="tdColor"><a class="color" href="javascript:fctSetColor(\'#' + strColor + '\', \'' + strColorTxt + '\');" style="background-color:#' + strColor + ';" onMouseOver="fctOver(\'#' + strColor + '\', \'' + strColorTxt + '\');" onMouseOut="fctOut();">&nbsp;</a></td>');
 intTdDisp++;
 intTblDisp++;
}

objSB.Append('<table id="tblLAQUE" class="tblColor" border="0" cellpadding="0" cellspacing="0"><tr>');
for (i = 0; i < arrLAQUE.length; i++) {
 if (intTblDisp % 16 == 0 && intTdDisp != 0) {
  objSB.Append('</tr><tr>');
  intTdDisp = 0;
 }
 strColor = '' + arrLAQUE[i][0];
 strColorTxt = '' + arrLAQUE[i][1];
 objSB.Append('<td class="tdColor"><a class="color" href="javascript:fctSetColor(\'#' + strColor + '\', \'' + strColorTxt + '\');" style="background-color:#' + strColor + ';" onMouseOver="fctOver(\'#' + strColor + '\', \'' + strColorTxt + '\');" onMouseOut="fctOut();">&nbsp;</a></td>');
 intTdDisp++;
 intTblDisp++;
}


objSB.Append('<table id="tblRESERVE" class="tblColor" border="0" cellpadding="0" cellspacing="0"><tr>');
for (i = 0; i < arrRESERVE.length; i++) {
 if (intTblDisp % 16 == 0 && intTdDisp != 0) {
  objSB.Append('</tr><tr>');
  intTdDisp = 0;
 }
 strColor = '' + arrRESERVE[i][0];
 strColorTxt = '' + arrRESERVE[i][1];
 objSB.Append('<td class="tdColor"><a class="color" href="javascript:fctSetColor(\'#' + strColor + '\', \'' + strColorTxt + '\');" style="background-color:#' + strColor + ';" onMouseOver="fctOver(\'#' + strColor + '\', \'' + strColorTxt + '\');" onMouseOut="fctOut();">&nbsp;</a></td>');
 intTdDisp++;
 intTblDisp++;
}

fctTblFeed();
objSB.Append('</tr></table></td></tr></table></fieldset></td></tr><tr><td class="tdContainer">');
objSB.Append('<table border="0" cellpadding="0" cellspacing="0" width="100%">');
objSB.Append('<tr><!--<td nowrap class="tdDisplay" id="objPreview">&nbsp;</td>--><td nowrap class="tdDisplay" id="objSelected">&nbsp;</td></tr>');
objSB.Append('<!--<tr><td nowrap class="tdDisplayTxt" id="objPreviewTxt" valign="top">&nbsp;</td>--><td nowrap class="tdDisplayTxt" id="objSelectedTxt" valign="top">&nbsp;</td></tr>');
objSB.Append('</table></td></tr><tr><td class="tdContainer">');
objSB.Append('<table border="0" cellpadding="0" cellspacing="0" width="100%"><tr>');
objSB.Append('<!--<td width="34%" align="center"><input type="button" value="Reset" class="btnColor" onClick="fctReset();"></td>-->');
objSB.Append('<td width="33%" align="center"><input type="button" value="Ok" class="btnColor" onClick="fctOk();"></td>');
objSB.Append('<td width="33%" align="center"><input type="button" value="Annuler" class="btnColor" onClick="fctHide();"></td>');
objSB.Append('</tr></table></td></tr></table>');
