var flOver=0;
var sItemColor='';
var sItemId='';

/** get elemetn by id for old browsers like IE 4.0*/
function GetDocumentId(sItemId){
  if(typeof(document.getElementById)=='undefined'){
    var tObj=document.all[sItemId];
  }else{
    var tObj=document.getElementById(sItemId);    
  }
  if(typeof(tObj)!='object' || tObj==null){
    return;
  }
  return tObj;
}
/*==============================*/

/** Close color Picker*/
function ClosePicker(ev){
  var CPickerTable=GetDocumentId('CPickerTable');
  if(typeof(CPickerTable)!='object'){
    return;
  }
  if(!flOver){
    CPickerTable.style.display="none";
  }
  if(sItemColor!=''){
    if(sItemId!=''){
      var tObj=GetDocumentId(sItemId);
      if(typeof(tObj)!='object'){
        return;
      }
      tObj.value=sItemColor
      sItemColor = sItemId = '';
    }
  }
  return true;
}
/*==============================*/

/** Decimal to Hexademacal value*/
function Dec2Hex(col){
  //col- color to convert(STR)
  col = col.toString(16);
  for(; col.length < 6; col = '0' + col);
  return col;
}
/*==============================*/

/** Build Color Picker*/
function BuildCPicker(e){
  var innerCol=3;
  var cellSize=10;
  var innerColCel=6;
  var tRows='';
  /*Main TABLE innerHTML*/
  var mainF='<thead style="cursor:default;"><tr><td colspan="16" bgColor="#999999" align="center" >'+CPickerShowTitle+'</td><td colspan="2" bgColor="#999999" onclick="flOver=0; ClosePicker();" title="close" align="center">x</td></tr></thead>'+
  '<tbody id="CPickerBody"><tr><td colspan="9" style="color:#FFFFFF" width="90" height="11" align="center" id="CHead1">sample</td><td colspan="9" style="color:#000000" width="90" height="11" align="center" id="CHead2">sample</td></tr>';
  var mainL='</tbody>';
  /**No Isertion into the document.body because of teh opera*/
  
  for (var j = 0; j < 12; j ++) {
    tRows+='<tr>';
    for (var k = 0; k < innerCol; k ++) {
      for (var i = 0; i < innerColCel; i ++) {
        var R = k * 51 + (j % 2) * 51 * 3;
        var G = Math.floor(j / 2) * 51;
        var B = i * 51;
        var col=Dec2Hex((R << 16) + (G << 8) + B);
        col=new String(col.toUpperCase());
        tRows+='<td bgcolor="#'+col+'" title="'+col+'" width="'+cellSize+'" hirght="'+cellSize+'" onmouseover="CPickerCellOver(\''+col+'\');" onclick="CPickerCellClick(this);">';
        tRows+="<img style='visibility:hidden' border='0' width='10' height='10' title='"+col+"' /></td>";
      }
    }
    tRows+='</tr>';
  }
  if(navigator.appName.indexOf('Internet Explorer')==-1){
    var oTable=document.createElement('TABLE');
    oTable.id="CPickerTable";
    oTable.onmouseover=function(event){flOver=1;};
    oTable.onmouseout=function(event){flOver=0;};
    oTable.width=cellSize*innerColCel*innerCol;
    oTable.style.font="11px Arial";
    oTable.style.position="absolute";
    oTable.style.display="none";
    oTable.cellPadding=oTable.cellSpacing=oTable.border="0";
    document.body.appendChild(oTable);
    oTable=GetDocumentId('CPickerTable');
    oTable.innerHTML=mainF+tRows+mainL;
  }else{
    /*For old browsers like IE 4.0*/
    document.body.innerHTML+='<table id="CPickerTable" onmouseover="flOver=1;" onmouseout="flOver=0;" width="'+(cellSize*innerColCel*innerCol)+'" style="font:11px Arial; position:absolute; display:none;" border="0" cellspacing="0" cellpadding="0">'+
    mainF+tRows+mainL+'</table>';
  }
  oTable=main=tRows=innerCol=cellSize=innerColCel=null;
}
/*==============================*/

/*On cell over*/
function CPickerCellOver(col){
  var CHead1=GetDocumentId('CHead1'); 
  var CHead2=GetDocumentId('CHead2'); 
  CHead2.style.backgroundColor=CHead1.style.backgroundColor='#'+col; 
  CHead1.innerHTML=CHead2.innerHTML=col;
}
/*==============================*/

/*On cell click*/
function CPickerCellClick(itself){
  sItemColor=itself.bgColor.replace(/#/i, ''); 
  sItemColor=sItemColor.toUpperCase();
  flOver=0;ClosePicker();
}
/*==============================*/

/** Show color picker*/
function ShowCPicker(itself, idelement){
  //itself - element, event caller(OBJ)
  //idelement - id of the form field to input(STR)
  var posEl=findPos(itself);
  var CPickerTable=GetDocumentId('CPickerTable');
  if(typeof(CPickerTable)!='object'){
    BuildCPicker();
  }
  var CPickerTable=GetDocumentId('CPickerTable');
  if(typeof(CPickerTable)!='object'){
    return;
  }
  CPickerTable.style.top=posEl[1]+"px";
  CPickerTable.style.left=posEl[0]+itself.offsetWidth+"px";
  CPickerTable.style.display="";
  sItemId=idelement;
}
/*==============================*/

/** Find element position*/
function findPos(obj) {
  var curleft = curtop = 0;
  if (obj.offsetParent) {
    curleft = obj.offsetLeft;
    curtop = obj.offsetTop;
    while (obj = obj.offsetParent) {
      curleft += obj.offsetLeft;
      curtop += obj.offsetTop;
    }
  }
  return [curleft,curtop];
}
/*==============================*/

UpdateEventHandler('window.onload', 'HideFeedFormElements');
//UpdateEventHandler('window.onload', 'BuildCPicker');
UpdateEventHandler('document.onmousedown', 'ClosePicker');

//Hide style configuration
/*
function HideFeedFormElements(e){
  try{
    var iNoStyle0=document.getElementById('boxCss0');
    var iNoStyle1=document.getElementById('boxCss1');
    var sDisplay='';
    if(iNoStyle0.checked || iNoStyle1.checked){
      sDisplay='none';
    }
    var hidElements=getElementsByName_iefix("TR", "FeedNoClass");
    for(var i=0; i<hidElements.length; i++){
      hidElements[i].style.display=sDisplay;
    }
  }catch(er){}
}
*/
function HideFeedFormElements(e){
    var iNoStyle0=GetDocumentId('boxCss0');
    var iNoStyle1=GetDocumentId('boxCss1');
    if(typeof(iNoStyle0)=='undefined' || typeof(iNoStyle1)=='undefined'){
      return
    }
    var sDisplay='';
    if(iNoStyle0.checked || iNoStyle1.checked){
      sDisplay='none';
    }
    var hidElements=getElementsByName_iefix("TR", "FeedNoClass");
    for(var i=0; i<hidElements.length; i++){
      hidElements[i].style.display=sDisplay;
    }
}
//Fixed function for IE 
function getElementsByName_iefix(tag, name) {
  if(typeof(document.getElementsByTagName)=='undefined'){
    return;
  }
  var elem = document.getElementsByTagName(tag);
  var arr = new Array();
  for(var i = 0, iarr = 0; i < elem.length; i++) {
     if(name == elem[i].getAttribute("name")) {
       arr[iarr] = elem[i];
       iarr++;
     }
  }
  return arr;
}
