var currentColor = 0;
var vcurrentColor = 0;

function setFocusPlease(num) {
 setTimeout(
  function() {
   var numEdit = ge(num+'Edit');
   numEdit.focus();
  }, 1
 );
}

function editColor(num) {
 var word = ge(num+"txt").innerHTML;
 if (word.length > 35) {
  word = word.substr(0, 35);
 }
 var width = word.length*6;

 if (width < 60) {
  width = 60;
 }

 ge(num+"Option").innerHTML = "<input onkeypress='if (event.keyCode==13) {this.blur()}' onblur='saveColor("+num+")' id='"+num+"Edit' type='text' style='width:"+width+"px;height:12px;font-size:11px; margin:2px' value='"+word+"'>";
 setFocusPlease(num);
 alreadyEdited = 1;
 //hide('Hint');

}

function numToColor(num) {
 var colors = new Array("White", "Red", "Orange", "Yellow", 
"Green", "Teal", "Blue", "Marine", "Purple");
 return colors[num];
}

function saveColor(num) {

 var word = ge(num+"Edit").value;
 if (word.length < 1) {
  word = "&nbsp;&nbsp;";
 }
 if (word.length > 35) {
  word = word.substr(0, 35);
 }
 ge(num+"Option").innerHTML = "<a id='"+num+"txt' href='javascript:editColor("+num+")'>"+word+"</a>";
 saveColorName(num, word);

}

function elementX(obj)
{
  var curleft = 0;
  if (obj.offsetParent) {
    while (obj.offsetParent) {
      curleft += obj.offsetLeft;
      obj = obj.offsetParent;
    }
  }
  else if (obj.x)
    curleft += obj.x;
  return curleft;
}

function elementY(obj)
{
  var curtop = 0;
  if(obj.offsetParent) {
    while (obj.offsetParent) {
      curtop += obj.offsetTop;
      obj = obj.offsetParent;
    }
  }
  else if (obj.y)
    curtop += obj.y;
  return curtop;
}

function moveHint(num) {

if (num > 0) {
 if (!alreadyEdited) {
  var cx = elementX(ge(num+'Option'));
  var cy = elementY(ge(num+'Option'));
  ge('Hint').style.top = cy+27+"px";
  ge('Hint').style.left = cx+"px";
  show('Hint');
 }
} else {
 hide('Hint');
}

}

function cColor(num) {

 var color = numToColor(num);

 ge(currentColor+"Option").className = "FG"+numToColor(currentColor);
 var word = ge(currentColor+'txt').innerHTML;
 ge(currentColor+"Option").innerHTML = "<a id='"+currentColor+"txt' href='javascript:cColor("+currentColor+")'>"+word+"</a>";

 ge(num+'Option').className = "FG"+color+"On";
 currentColor = num;

 function fnShowProps(obj, objName){
   var result = "";
   for (var i in obj) // обращение к свойствам объекта по индексу
       result += objName + "." + i + " = " + obj[i] + "<br />\n";
   document.write(result);
} 
 
 	var nodes = ge('clients').childNodes;
	for (var i in nodes)
  {
    fnShowProps(i, 'div');
    alert(i + '|'+ge(num+'txt').innerHTML);
  } 
 
 //moveHint(num);

 var word = ge(num+'txt').innerHTML;
 /*if (num) {
  ge(num+'Option').innerHTML = "<a id='"+num+"txt' href='javascript:editColor("+num+")'>"+word+"</a>";
 } else {
  ge(num+'Option').innerHTML = "<a id='"+num+"txt' href='#'>"+word+"</a>";
 }*/
 //FriendsObj.getPage(null, 1);
}

function vColor(num) {

 var color = numToColor(num);

 ge(num+'VOption').className = "FV"+color+"On";
 ge(num+'vcheck').className = "vcheck";
 var word = ge(num+'vtxt').innerHTML;
 ge(num+'VOption').innerHTML = "<a id='"+num+"vtxt' href='javascript:devColor("+num+")'>"+word+"</a>";
 ge('cat').value |= (1 << num);

}

function devColor(num) {

 var color = numToColor(num);

 ge(num+'VOption').className = "FV"+color;
 ge(num+'vcheck').className = "noncheck";
 var word = ge(num+'vtxt').innerHTML;
 ge(num+'VOption').innerHTML = "<a id='"+num+"vtxt' href='javascript:vColor("+num+")'>"+word+"</a>";
 ge('cat').value &= ~(1 << num);

}

function saveColorName(num, newName) {
   document.body.style.cursor = "wait";
   ge(num+'txt').style.cursor = "wait";
			var ajax = new Ajax();
			ajax.id = num;
			ajax.post('/friend.php', {'act': 'a_save_group', 'id': num, 'name': newName});
			ajax.onDone = saveSuccess;
}

function saveSuccess(ajaxObj, responseText) {
  document.body.style.cursor = "default";
  num = ajaxObj.id;
  ge(num+'txt').style.cursor = "default";
  for (var i=0; i<9; i++) {
   catNames[i] = ge(i+'txt').innerHTML;
  }
}

function changeBox(num) {

 createBox();

 var item = friendsInfo.list[num];
 var fid = item[0];
 var name = item[1].f+" "+item[1].l;
 var cat = item[2].fg;
 ge('cat').value = cat;

 ge('boxWrap').style.width = "290px";
 ge('boxTitle').innerHTML = lang_friend_cat_usercats;

 var vlist = "<div style='margin:16px 0px 0px 8px;width:240px'>";
 vlist += "<table id='gTable' cellspacing=3 cellpadding=3 border=0>";

 for (var i=1;i<9;i++) {
  var non = (cat >> i) & 1 ? 'v' : 'non';
  var on = (cat >> i) & 1 ? 'On' : '';
  var de = (cat >> i) & 1 ? 'de' : '';
  vlist += "<tr><td id='"+i+"vcheck' style='width:13px' width='13' class='"+non+"check'></td>";
  vlist += "<td style='width:200px'>";
  vlist += "<div class='FV"+numToColor(i)+on+"' id='"+i+"VOption'><a id='"+i+"vtxt' href='javascript:"+de+"vColor("+i+")'>"+ge(i+'txt').innerHTML+"</a></div>";
  vlist += "</td></tr>";
 }

 vlist += "</table></div>";

 ge('boxMessage').innerHTML = "<div><b>"+name+"</b> "+lang_friend_cat_belongstocats+vlist+"</div>";
 ge('button1').innerHTML = lang_friend_cat_save;
 ge('button2').innerHTML = lang_friend_cat_cancel;

 showBox(function(){ 
 var ajax = new Ajax();
  ge('boxMessage').style.height = "15px";
  ajax.num = num;
  ajax.fid = fid;
  ajax.cat = ge('cat').value;
  ajax.onDone = changeSuccess; 
  ajax.post('/friend.php', {'act': 'a_change_groups', 'fid': fid, 'cat': ge('cat').value});
  ge('boxMessage').innerHTML = '<div style="text-align: center"><img valign="middle" src="/images/progress7.gif"></div>';
 });

}

function changeSuccess(ajaxObj, responseText) {
  hideBox();
  var num = ajaxObj.num;
  friendsInfo.list[num][2].fg = ajaxObj.cat;
  ge('fcats'+ajaxObj.fid).innerHTML = getCats(ajaxObj.cat);
}

function getCats(cat) {
 var cats = "";
 if (cat > 1) {
  for (var ci=1; ci<9; ci++) {
   if ((cat >> ci) & 1) {
    if (cats) {
     cats += " ";
    }
    cats += "<span class='Group"+ci+"'>"+catNames[ci]+"</span>";
   }
  }
 }
 return cats; 
}

