function debug(color,log) {
  try {
  var date=new Date();
  var time='';
  var aux='';
  aux=date.getHours().toString();if (aux.length==1) {time=time+'0';}time=time+aux+':'; 
  aux=date.getMinutes().toString();if (aux.length==1) {time=time+'0';}time=time+aux+':';
  aux=date.getSeconds().toString();if (aux.length==1) {time=time+'0';}time=time+aux+'.';
  aux=date.getMilliseconds().toString();if (aux.length==1) {time=time+'00';}if (aux.length==2) {time=time+'0';}
  time=time+aux;
  if (DEBUG) try {element.get('debug').innerHTML='<span style="color:'+color+'">'+log+'</span> ['+ajax.queue.length+'] '+time} catch(ex){}
  } catch(ex) {}
}

function setCookie(c_name,value,expiredays) {
  var exdate=new Date();
  exdate.setDate(exdate.getDate()+expiredays);
  document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function getCookie(c_name) {
  if (document.cookie.length>0) {
    c_start=document.cookie.indexOf(c_name + "=");
    if (c_start!=-1) {
      c_start=c_start + c_name.length+1;
      c_end=document.cookie.indexOf(";",c_start);
      if (c_end==-1) c_end=document.cookie.length;
      return unescape(document.cookie.substring(c_start,c_end));
    }
  }
  return "";
}

function toggleCookie(cookieName) {
  if (getCookie(cookieName)=='1') {
    setCookie(cookieName,'0',365);
  } else {
    setCookie(cookieName,'1',365);
  }
}

var chat={
  last: 0,
  delay: 500,
  init: function() {
    ajax.init();
    setTimeout("chat.refresh();",0);
    setTimeout("chat.online();",500);
    return true;
  },
  count: function(number) {
if (number>=30000) { 
    var str=''+number;
    var counter='';
    for (i=0;i<str.length;i++) {
      switch (str[i]) {
        case '0': counter=counter+'<div class="number zero"></div>'; break;
        case '1': counter=counter+'<div class="number one"></div>'; break;
        case '2': counter=counter+'<div class="number two"></div>'; break;
        case '3': counter=counter+'<div class="number three"></div>'; break;
        case '4': counter=counter+'<div class="number four"></div>'; break;
        case '5': counter=counter+'<div class="number five"></div>'; break;
        case '6': counter=counter+'<div class="number six"></div>'; break;
        case '7': counter=counter+'<div class="number seven"></div>'; break;
        case '8': counter=counter+'<div class="number eight"></div>'; break;
        case '9': counter=counter+'<div class="number nine"></div>'; break;
      }
    }
    element.get('counter').innerHTML=counter+'<br clear="all" />';
}
  },
  stats: function(response) {
      if ((response!=null)&&(response!='')) {
        element.get('stats').innerHTML=response;
      }
      return true;
  },
  statsUser: function(response) {
      if ((response!=null)&&(response!='')) {
        element.get('statsUser').innerHTML=response;
      }
      return true;
  },
  refresh: function(lastid) {
debug('red','refresh');
    if ((lastid!=null)&&(lastid!='')&&(lastid!=chat.last)) {
      chat.last=lastid;
      setTimeout("ajax.request(['get','index.php','action=chat&method=content&category='+chat.theme.id+'&limit='+chat.limit.value+'&system='+chat.system.allowed,chat.content]);",0);
      setTimeout("ajax.request(['get','index.php','action=chat&method=theme',chat.theme.content]);",0);
      setTimeout("ajax.request(['get','index.php','action=chat&method=count',chat.count]);",0);
      setTimeout("ajax.request(['get','index.php','action=chat&method=stats&type=all24&parameter=',chat.stats]);",0);
    }
    setTimeout("ajax.request(['get','index.php','action=chat&method=refresh',chat.refresh]);",chat.delay);
    return true;
  },
  online: function(response) {
debug('pink','online');
    if ((response!=null)&&(response!='')) {
      if (element.get('online').innerHTML!=response) {
        element.get('online').innerHTML=response;
      }
    }
    setTimeout("ajax.request(['get','index.php','action=chat&method=online',chat.online]);",chat.delay);
    return true;
  },
  content: function(response) {
debug('yellow','content');
    if ((response!=null)&&(response!='')) {
      element.get('content').innerHTML=response;
      setTimeout("ajax.request(['get','index.php','action=chat&method=poll&row="+chat.survey.row+"',chat.survey.list]);",0);
      setTimeout("ajax.request(['get','index.php','action=chat&method=survey&row="+chat.survey.row+"',chat.survey.content]);",0);
      chat.sound.play('sound.file');
    return true;
    }
  },
  survey: {
    id: 0,
    answers: 1,
    row: false,
    overlay: '<img style="margin-top:-4px;margin-left:-5px;" src="http://tosuya.net/image/chat/survey.png">',
    toggle: function() {
debug('#ff803f','survey.toggle');
      if (this.row) {
        this.row=false;
        element.get('survey_toggle').src='http://tosuya.net/image/chat/column.png';
        element.get('content').style.width='550px';
        element.get('survey').style.cssFloat='right';
        element.get('survey_row').style.display='none';
        setTimeout("ajax.request(['get','index.php','action=chat&method=content&category='+chat.theme.id+'&limit='+chat.limit.value+'&system='+chat.system.allowed,chat.content]);",0);
      } else {
        this.row=true;
        element.get('survey_toggle').src='http://tosuya.net/image/chat/row.png';
        element.get('content').style.width='100%';
        element.get('survey').style.cssFloat='none';
        element.get('survey_row').style.display='block';
        chat.survey.id=0;
        setTimeout("ajax.request(['get','index.php','action=chat&method=content&category='+chat.theme.id+'&limit='+chat.limit.value+'&system='+chat.system.allowed,chat.content]);",0);
      }
      return true;
    },
    list: function(response) {
debug('violet','survey.list');
      if ((response!=null)&&(response!='')) {
        element.get('poll').innerHTML=response;
//        element.substitute(element.get('poll'),response);
      }
      return true;
    },
    content: function(response) {
debug('violet','survey.content');
      if ((response!=null)&&(response!='')) {
        element.get('survey').innerHTML=response;
      }
      if (chat.survey.id!=0) {
        try {
          element.get('survey_'+chat.survey.id).style.display='block';
        } catch(ex) {}
      }
      return true;
    },
    show: function(surveyid) {
debug('violet','survey.show');
      if (this.id!=surveyid) {
        this.id=surveyid;
        element.get('survey_hide').style.display='block';
        setTimeout("ajax.request(['get','index.php','action=chat&method=survey&row="+this.row+"',chat.survey.content]);",0);
      }
      return true;
    },
    hide: function() {
debug('violet','survey.hide');
      this.id=0;
      element.get('survey_hide').style.display='none';
      setTimeout("ajax.request(['get','index.php','action=chat&method=survey&row="+this.row+"',chat.survey.content]);",0);
      return true;
    },
    vote: function(surveyid,value) {
debug('violet','survey.vote');
      setTimeout("ajax.request(['get','index.php','action=chat&method=poll&survey="+surveyid+"&row="+this.row+"&vote="+value+"',null]);",0);
      return true;
    },
    create: function() {
      e=element.get('survey_form');
      var query='';
      if (e.elements[0].value!='') {
        query=query+e.elements[0].value;
        for (i=1;i<=this.answers;i++) {
          if (e.elements[i].value!='') {
            query=query+'|'+e.elements[i].value;
          }
        }
        setTimeout("ajax.request(['post','index.php','action=chat&method=survey&parameters="+query+"',null]);",0);
      }
      this.minus();
      e.elements[0].value='';
      this.answers=0;      
    },
    plus: function() {
      element.get('survey_new').style.display='block';    
    },
    minus: function() {
      element.get('survey_form').elements[0].value='';
      element.substitute(element.get('answers'),'<div id="answers"></div>');
      element.get('survey_new').style.display='none';    
      this.answer();
    },
    remove: function(surveyid) {
      setTimeout("ajax.request(['get','index.php','?action=chat&method=survey&sub=remove&id="+surveyid+"',null]);",0);
    },
    answer: function() {
      element.add(element.get('answers'),'<div class="input"><ul><li class="input-text">odpověď:</li><li class="input-left"></li><li class="input-mid"><input size="40" type="text" /></li><li class="input-right"></li></ul></div><br clear="all" />');
      this.answers++;      
    }
  },
  theme: {
    id: 0,
    set: function(themeid,color,title) {
debug('navy','theme.set');
      if (this.id!=themeid) {
        this.id=themeid;
        if (this.id!=0) {
          element.get('theme_hide').style.display='block';
        } else {
          element.get('theme_hide').style.display='none';
        }
        ajax.request(['get','index.php','action=chat&method=content&category='+chat.theme.id+'&limit='+chat.limit.value+'&system='+chat.system.allowed,chat.content]);
      }
      element.get('themelist').style.display='none';
      var e=element.get('theme');
      e.style.display='block';
      e.style.background=color;
      e.innerHTML=title;
      element.get('message').focus();
      return true;
    },
    content: function(response) {
debug('orange','theme.content');
      if ((response!=null)&&(response!='')) {
        element.get('themelist').innerHTML=response;
      }
      return true;
    },
    plus: function() {
      element.get('theme_new').style.display='block';    
      
    },
    minus: function() {
      element.get('theme_new').style.display='none';    
      element.get('theme_new_name').value='';
      element.get('theme_new_text').style.color="#ffffff";
      element.get('theme_new_color').style.background="#ffffff";
    },
    create: function() {
debug('magenta','theme.create');
      if (element.get('theme_new_name').value!='') {
        var theme_color=element.get('theme_new_text').style.color;
        var query='action=chat&method=theme&sub=create&title='+element.get('theme_new_name').value+'&color='+theme_color;
        setTimeout("ajax.request(['get','index.php','"+query+"',null]);",0);
      }
      this.minus();    
    }
  },
  system: {
    allowed: true,
    send: false,
    message: function() {
debug('grey','system.message');
      if (this.send) {
        element.get('send_system').src='http://tosuya.net/image/chat/blank.png';
        this.send=false;
      } else {
        element.get('send_system').src='http://tosuya.net/image/chat/system.png';
        this.send=true;
      }
    },
    toggle: function() {
debug('#ff8080','system.set');
      if (this.allowed) {
        this.allowed=false;
        element.get('system').src='http://tosuya.net/image/chat/blank.png';
        setTimeout("ajax.request(['get','index.php','action=chat&method=content&category='+chat.theme.id+'&limit='+chat.limit.value+'&system='+chat.system.allowed,chat.content]);",0);
      } else {
        this.allowed=true;
        element.get('system').src='http://tosuya.net/image/chat/system.png';
        setTimeout("ajax.request(['get','index.php','action=chat&method=content&category='+chat.theme.id+'&limit='+chat.limit.value+'&system='+chat.system.allowed,chat.content]);",0);
      }
      return true;
    }
  },
  photo: {
    allowed: true,
    toggle: function() {
debug('#808000','photo.set');
      if (this.allowed) {
        this.allowed=false;
        element.get('photo_toggle').src='http://tosuya.net/image/chat/blank.png';
        setCookie('chat_photo','0',365);
        ajax.request(['get','index.php','action=chat&method=content&category='+chat.theme.id+'&limit='+chat.limit.value+'&system='+chat.system.allowed,chat.content]);
      } else {
        this.allowed=true;
        element.get('photo_toggle').src='http://tosuya.net/image/chat/photo.png';
        setCookie('chat_photo','1',365);
        ajax.request(['get','index.php','action=chat&method=content&category='+chat.theme.id+'&limit='+chat.limit.value+'&system='+chat.system.allowed,chat.content]);
      }
      return true;
    }
  },
  sound: {
    allowed: false,
    toggle: function() {
debug('#ff0080','sound.set');
      if (this.allowed) {
        this.allowed=false;
        element.get('sound').src='http://tosuya.net/image/chat/blank.png';
      } else {
        this.allowed=true;
        element.get('sound').src='http://tosuya.net/image/chat/sound.png';
      }
      return true;
    },
    play: function(id) {
debug('#ff0080','sound.play');
      if (chat.sound.allowed) {
        try {
          element.get(id).Play();
        } catch(ex) {}
      }
      return true;
    }
  },
  limit: {
    value: 30,
    set: function(value) {
debug('#ff8080','limit.set');
      if (this.value!=value) {
        this.value=value;
        ajax.request(['get','index.php','action=chat&method=content&category='+chat.theme.id+'&limit='+chat.limit.value+'&system='+chat.system.allowed,chat.content]);
      }
      return true;
    }
  }
}

