// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
//

//submits a form with the passed id
function submitForm(id)
  {
    getObject(id).submit();
  }

//hides element with the passed id
function hideElement(id)
  {
    $(id).hide()
  }

//blocks links
function blockLinks(linkIds){
  for(i=0; i<linkIds.length; i++){
    $(linkIds[i]).onclick='';
  }
}
///////////////HTML objects handling/////////////////////
                                                       //
//gets the object handler                              //
  function getObject( id ){                            //
    if (document.getElementById)                       //
      return document.getElementById(id);              //
    else if (document.all)                             //
      return document.all[id].innerHTML;               //
    else if (document.layers){                         //
      elem = document.layers[id];                      //
      elem.open;                                       //
      return elem.read();                              //
      elem.close();                                    //
      }                                                //
  }                                                    //
                                                       //
//writes text into the object's innerHTML              //
  function writeObject(id, text){                      //
    if (document.getElementById)                       //
      document.getElementById(id).innerHTML=text;      //
    else if (document.all)                             //
      document.all[id].innerHTML=text;                 //
    else if (document.layers){                         //
      elem = document.layers[id];                      //
      elem.open();                                     //
      elem.write(text);                                //
      elem.close();                                    //
      }                                                //
  }                                                    //
                                                       //
/////////////////////////////////////////////////////////
//////////////  star_select ///////////////////

  function storeGrade(field_class, field_name, count){
    getObject(field_class +'_'+ field_name).value=count;
    set_display(field_class + field_name+ 'display', count);
  }

  function loadGrade(field_class, field_name, count){
    var loaded_grade = getObject(field_class +'_'+ field_name).value;
    if (loaded_grade == 0)
      loaded_grade=count;
    set_display(field_class + field_name+ 'display', loaded_grade);
  }

  function set_display(display_name, count){
    var to_write='';
    for(var s=1;s<=count;s++)
      to_write+='<div class="one_star">&nbsp;</div>';
    to_write+='<div class="clear"></div>';
    getObject(display_name).innerHTML=to_write;
  }

///////////////////////////////////////

////// counting letters left /////////
  function updateCounter(name, treshold){
      var text = getObject(name).value;
      var real_text = text.replace("\n", "aa")
      var counter_value = real_text.length
      if (counter_value <= treshold)
        counter_text = '<span class="counterOk smallerFont">noch ' + (treshold - counter_value) + ' Zeichen möglich</span>';
      else
        counter_text = '<span class="counterWrong smallerFont">' + (counter_value - treshold)+' Buchstaben zu viel</span>';
      writeObject(name + '_counter',counter_text);

  }
/////////////////////////////////////


//////////////////  HELP window /////////////////

  currentProcessID=0

  function help(title,text, sender_id, timeOut){
    if (currentProcessID>0)
      clearTimeout(currentProcessID);
    var helpOffset=[8, 15];
    var buttonWidth=23;
    var helpObject=getObject('help');
    var helpContentObject=getObject('helpContent');
    var helpTitleContentObject=getObject('helpTitleContent');
    var layoutDiv=getObject('top');
    var desiredPosition = findPos(getObject(sender_id));
    //  If the box doesn't fit move it left
    if (desiredPosition[0] > layoutDiv.offsetLeft+(layoutDiv.offsetWidth/2)){
      desiredPosition[0] += (-helpObject.offsetWidth - helpOffset[0] + buttonWidth);
      helpObject.style.textAlign='right';
      }
    else{
      desiredPosition[0] += (helpOffset[0]);
      helpObject.style.textAlign='left';
      }
    desiredPosition[1] += (helpOffset[1]);
    helpObject.style.zIndex=1000;
    helpObject.style.left=(desiredPosition[0])+'px';
    helpObject.style.top=(desiredPosition[1])+'px';
    helpContentObject.innerHTML=text;
    helpTitleContentObject.innerHTML=title;
    helpObject.style.visibility= 'visible';
    // IE stuff
    if (navigator.appName=="Microsoft Internet Explorer"){
        var helpIFRAME=getObject('helpIFRAME');
        var helpFooter=getObject('helpFooter');
        helpIFRAME.style.left=helpObject.style.left;
        helpIFRAME.style.top=(desiredPosition[1]+helpOffset[1])+'px';
        helpIFRAME.style.height=(helpObject.offsetHeight-20) +'px';
        helpIFRAME.style.width=(helpObject.offsetWidth) +'px';
        helpIFRAME.style.visibility= 'visible';
    }
    if (timeOut>0)
      currentProcessID=setTimeout("hideHelp()",timeOut);
  }

  function hideHelp(){
    // IE trick
    if (navigator.appName=="Microsoft Internet Explorer"){
      var helpIFRAME=getObject('helpIFRAME');
      helpIFRAME.style.visibility= 'hidden';
    }
    var helpObject=getObject('help');
    helpObject.style.visibility= 'hidden';
    helpObject.style.left = helpObject.style.top= '10px';
  }

  function findPos(measuredObject) {
    var t=0;
    var l=0;
      if ((measuredObject.offsetParent)&&(measuredObject = measuredObject.offsetParent)&&(measuredObject.offsetParent)) {
        do {
          l += measuredObject.offsetLeft;
          t += measuredObject.offsetTop;
          //getObject('helpContent').innerHTML+='(' +l+', '+t+ ')<br>';
        } while (measuredObject = measuredObject.offsetParent);
      }
      return [l,t];
  }


////////////////////////////////////////////////
  function setCookie(name, value, days){
    var today = new Date();
    var expire = new Date();
    if (days == null || days == 0) days = 1;
    expire.setTime(today.getTime() + 3600000*24*days);
    document.cookie = name + "=" + escape(value) + ";expires=" + expire.toGMTString();
  }
//////////////COOKIES///////////////////////////

////////////////////////////////////////////////
  function setCookie(name, value, days){
    var today = new Date();
    var expire = new Date();
    if (days == null || days == 0) days = 1;
    expire.setTime(today.getTime() + 3600000*24*days);
    document.cookie = name + "=" + escape(value) + ";expires=" + expire.toGMTString();
  }
//////////////COOKIES///////////////////////////

////////////////////////////////////////////////

Ajax.Base.prototype.initialize = Ajax.Base.prototype.initialize.wrap(
   function(p, options){
     p(options);
     this.options.parameters = this.options.parameters || {};
     this.options.parameters.authenticity_token = window._token || '';
   }
);
