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

/** Close color Picker*/
function ClosePicker(ev){
  var CPickerTable=document.getElementById('CPickerTable');
  if(!flOver){
    CPickerTable.style.display="none";
  }
  if(sItemColor!=''){
    if(sItemId==''){
      alert('Check ID of the element in the function ShowCPicker');
    }else{    
      document.getElementById(sItemId).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 CPickerTable=document.getElementById('CPickerTable');
  var CPickerBody=document.getElementById('CPickerBody');
  var CHead1=document.getElementById('CHead1');
  var CHead2=document.getElementById('CHead2');
  var innerCol=3;
  var cellSize=10;
  var innerColCel=6;
  CPickerTable.width=cellSize*innerColCel*innerCol;
  CPickerTable.onmouseover=function(event){flOver=1;}
  CPickerTable.onmouseout=function(event){flOver=0;}
  for (var j = 0; j < 12; j ++) {
    var tr = document.createElement('TR');
    CPickerBody.appendChild(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 td = document.createElement('TD');
        var elDiv = document.createElement('DIV');
        var col=Dec2Hex((R << 16) + (G << 8) + B);
        col=col.toUpperCase();
        td.bgColor = '#'+col;
        td.title=col;
        td.width =td.height= cellSize;
        td.onmouseover = function(event) {var col=window.event ? window.event.srcElement.title : event.target.title; CHead2.style.backgroundColor=CHead1.style.backgroundColor='#'+col.replace(/#/i, ''); CHead1.innerHTML=CHead2.innerHTML='#'+col.replace(/#/i, '');};
        td.onclick = function(event) {sItemColor=window.event ? window.event.srcElement.title : event.target.title; sItemColor=sItemColor.replace(/#/i, ''); flOver=0;ClosePicker();};
        td.innerHTML="<img style='visibility:hidden' border='0' width='10' height='10' title='"+col+"'>";
        tr.appendChild(td);
        td = R = B = G = col = null;
      }
    }
  }
}
/*==============================*/

/** 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=document.getElementById('CPickerTable');
  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];
}
/*==============================*/
/** 
 Chack the EventHandler. 
 If some hanler exists than overwrite it with myown
*/
function UpdateEventHandler(strevent, funname){
  eval("var testw="+strevent+";");
  /*check if the function is allready exists*/
  if(typeof(testw)=='function'){
    testw=testw.toString();
    /*if handler is non emty then add some actions*/
    var sTmp="";
    /*If IE than no event argument in the function*/
    var reTest=/function [\S]*(event)\)/i;
    var aTemp=testw.match(reTest);
    if(aTemp!=null){
      sTmp="event";
    }
    testw=testw.replace(/\n}/, funname+"("+sTmp+");}");
    eval(strevent+"="+testw+";");
  }else{
    eval(strevent+"="+funname+";");
  }
}
/*==============================*/

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){}
}
//Fixed function for IE 
function getElementsByName_iefix(tag, name) {
  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;
}
