Array.prototype.inArray = function(value) {
  var i;
  //
  for (i = 0; i < this.length; i++) {
    if (this[i] === value) {
      return true;
    }
  }
  //
  return false;
}

function ltrim(value) {
  var re = /\s*((\S+\s*)*)/;
  //
  return value.replace(re, '$1');
}

function rtrim(value) {
  var re = /((\s*\S+)*)\s*/;
  //
  return value.replace(re, '$1');
}

function trim(value) {
  return ltrim(rtrim(value));
}

function upCase(value) {
  var i;
  var j;
  //
  var s = '';
  var r = '';
  //
  s = value.toString();
  //
  j = s.length;
  //
  for (i = 0; i < j; i++) {
    switch (s.charAt(i)) {
      case '\u011f':
        r = r + '\u011e';
        break;
      //
      case 'ü':
        r = r + 'Ü';
        break;
      //
      case '\u015f':
        r = r + '\u015e';
        break;
      //
      case 'i':
        r = r + '\u0130';
        break;
      //
      case '\u0131':
        r = r + 'I';
        break;
      //
      case 'ö':
        r = r + 'Ö';
        break;
      //
      case 'ç':
        r = r + 'Ç';
        break;
      //
      default:
        r = r + s.charAt(i).toUpperCase();
        break;
    }
  }
  //
  return r;
}

function loCase(value) {
  var i;
  var j;
  //
  var s = '';
  var r = '';
  //
  s = value.toString();
  //
  j = s.length;
  //
  for (i = 0; i < j; i++) {
    switch (s.charAt(i)) {
      case '\u011e':
        r = r + '\u011f'
        break;
      //
      case 'Ü':
        r = r + 'ü';
        break;
      //
      case '\u015e':
        r = r + '\u015f';
        break;
      //
      case '\u0130':
        r = r + 'i';
        break;
      //
      case 'I':
        r = r + '\u0131';
        break;
      //
      case 'Ö':
        r = r + 'ö';
        break;
      //
      case 'Ç':
        r = r + 'ç';
        break;
      //
      default:
        r = r + s.charAt(i).toUpperCase();
        break;
    }
  }
  //
  return r;
}

function focus(id) {
  var obj;
  //
  obj =  document.getElementById(id);
  //
  if (obj != null) {
    obj.focus();
  }
}

function redirectTo(url, id) {
  var obj = document.getElementById(id);
  //
  if (obj != null) {
    obj.innerHTML = 5;
    //
    window.setTimeout('runTimer("' + url + '", "' + id + '");', 1000);
  }
}

function runTimer(url, id) {
  var obj = document.getElementById(id);
  //
  if (obj != null) {
    var time = parseInt(obj.innerHTML, 10) - 1;
    //
    if (time > 0) {
      obj.innerHTML = time;
      //
      window.setTimeout('runTimer("' + url + '", "' + id + '");', 1000);
    }
    else {
      window.location = url;
    }
  }
}

function getElementsByClass(theClass, node, tag) {
  var elems = [];
  //
  if (node == null) {
    node = document;
  }
  //
  if (tag == null) {
    tag = '*';
  }
  //
  var objs = node.getElementsByTagName(tag);
  //
  if (objs != null) {
    var i;
    var j;
    var k;
    var arr;
    //
    k = 0;
    //
    for (i = 0; i < objs.length; i++) {
      arr = objs[i].className.split(',');
      //
      for (j = 0; j < arr.length; j++) {
        arr[j] = trim(arr[j]);
      }
      //
      if (arr.inArray(theClass)) {
        elems[k] = objs[i];
        //
        k++;
      }
    }
  }
  //
  return elems;
}

function addClass(id, theClass, recurse) {
  var i;
  var j;
  var arr;
  var obj;
  var objs;
  //
  if (recurse) {
    objs = getElementsByClass(id);
    //
    if (objs != null) {
      for (i = 0; i < objs.length; i++) {
        arr = objs[i].className.split(',');
        //
        for (j = 0; j < arr.length; j++) {
          arr[j] = trim(arr[j]);
        }
        //
        if (objs[i].className != '') {
          objs[i].className = objs[i].className + ', ';
        }
        //
        objs[i].className = objs[i].className + theClass;
      }
    }
  }
  else {
    obj = document.getElementById(id);
    //
    if (obj != null) {
      arr = obj.className.split(',');
      //
      for (i = 0; i < arr.length; i++) {
        arr[i] = trim(arr[i]);
      }
      //
      if (!arr.inArray(theClass)) {
        if (obj.className != '') {
          obj.className = obj.className + ', ';
        }
        //
        obj.className = obj.className + theClass;
      }
    }
  }
}

function removeClass(id, theClass, recurse) {
  var i;
  var j;
  var arr;
  var obj;
  var objs;
  var found;
  var clsName;
  //
  if (recurse) {
    objs = getElementsByClass(id);
    //
    if (objs != null) {
      for (i = 0; i < objs.length; i++) {
        arr = objs[i].className.split(',');
        //
        for (j = 0; j < arr.length; j++) {
          arr[j] =  trim(arr[j]);
        }
        //
        found = false;
        //
        clsName = '';
        //
        for (j = 0; j < arr.length; j++) {
          if (arr[j] != theClass) {
            if (clsName != '') {
              clsName = clsName + ', ';
            }
            //
            clsName = clsName + arr[j];
          }
          else {
            if (!found) {
              found = true;
            }
            else {
              if (clsName != '') {
                clsName = clsName + ', ';
              }
              //
              clsName = clsName + arr[j];
            }
          }
        }
        //
        objs[i].className = clsName;
      }
    }
  }
  else {
    obj =  document.getElementById(id);
    //
    if (obj != null) {
      arr = obj.className.split(',');
      //
      for (i = 0; i < arr.length; i++) {
        arr[i] =  trim(arr[i]);
      }
      //
      clsName = '';
      //
      for (i = 0; i < arr.length; i++) {
        if (arr[i] != theClass) {
          if (clsName != '') {
            clsName = clsName + ', ';
          }
          //
          clsName = clsName + arr[i];
        }
      }
      //
      obj.className = clsName;
    }
  }
}

function hover(theClass) {
  var bgColor;
  //
  var elems = getElementsByClass(theClass);
  //
  if (elems != null) {
    for (var i = 0; i < elems.length; i++) {
      elems[i].onmouseover = function() {
        bgColor = this.style.backgroundColor;
        //
        this.style.backgroundColor = '#e2e2af';
      }
      //
      elems[i].onmouseout = function() {
        this.style.backgroundColor = bgColor;
      }
    }
  }
}

function updateDateTime(id) {
  var obj;
  //
  obj = document.getElementById(id);
  //
  if (obj == null) {
    obj = document.getElementByName(id);
  }
  //
  if (obj != null) {
    var dt = new Date();
    //
    var year = dt.getFullYear();
    var month = dt.getMonth() + 1;
    //
    var monthname = '';
    //
    switch (month) {
      case 1:
        monthname = 'Ocak';
        break;
      //
      case 2:
        monthname = '\u015eubat';
        break;
      //
      case 3:
        monthname = 'Mart';
        break;
      //
      case 4:
        monthname = 'Nisan';
        break;
      //
      case 5:
        monthname = 'May\u0131s';
        break;
      //
      case 6:
        monthname = 'Haziran';
        break;
      //
      case 7:
        monthname = 'Temmuz';
        break;
      //
      case 8:
        monthname = 'A\u011fustos';
        break;
      //
      case 9:
        monthname = 'Eylül';
        break;
      //
      case 10:
        monthname = 'Ekim';
        break;
      //
      case 11:
        monthname = 'Kas\u0131m';
        break;
      //
      case 12:
        monthname = 'Aral\u0131k';
        break;
    }
    //
    var day = dt.getDate();
    var dayofweek = dt.getDay();
    //
    var dayname = '';
    //
    switch (dayofweek) {
      case 0:
        dayname = 'Pazar';
        break;
      //
      case 1:
        dayname = 'Pazartesi';
        break;
      //
      case 2:
        dayname = 'Sal\u0131';
        break;
      //
      case 3:
        dayname = 'Çar\u015famba';
        break;
      //
      case 4:
        dayname = 'Per\u015fembe';
        break;
      //
      case 5:
        dayname = 'Cuma';
        break;
      //
      case 6:
        dayname = 'Cumartesi';
        break;
    }
    var hours = dt.getHours();
    var minutes = dt.getMinutes();
    var seconds = dt.getSeconds();
    //
    month = (month < 10 ? '0' : '') + month;
    day = (day < 10 ? '0' : '') + day;
    //
    hours = (hours < 10 ? '0' : '') + hours;
    minutes = (minutes < 10 ? '0' : '') + minutes;
    seconds = (seconds < 10 ? '0' : '') + seconds;
    //
    var s = '';
    //
    s = s + day + ' ' + monthname + ' ' + year + ', ' + dayname + ' - ';
    //
    s = s + hours + ':' + minutes + ':' + seconds;
    //
    obj.firstChild.nodeValue = s;
  }
}

function addEvent(obj, type, fn) {
  if (obj.addEventListener) {
    obj.addEventListener(type, fn, false);
    //
    EventCache.add(obj, type, fn);
  }
  else  {
    if (obj.attachEvent) {
      obj["e" + type + fn] = fn;
      //
      obj[type + fn] =
        function() {
          obj["e" + type + fn](window.event);
        }
      //
      obj.attachEvent("on" + type, obj[type + fn]);
      //
      EventCache.add(obj, type, fn);
    }
    else {
      obj["on" + type] = obj["e" + type + fn];
    }
  }
}

var EventCache = function() {
  var listEvents = [];
  //
  return {
    listEvents: listEvents,
    //
    add: function(node, sEventName, fHandler) {
      listEvents.push(arguments);
    },
    //
    flush: function() {
      var i, item;
      //
      for (i = listEvents.length - 1; i >= 0; i = i - 1) {
        item = listEvents[i];
        //
        if (item[0].removeEventListener) {
          item[0].removeEventListener(item[1], item[2], item[3]);
        }
        //
        if (item[1].substring(0, 2) != "on") {
          item[1] = "on" + item[1];
        }
        //
        if (item[0].detachEvent) {
          item[0].detachEvent(item[1], item[2]);
        }
        //
        item[0][item[1]] = null;
      }
    }
  }
} ();

addEvent(window, 'unload', EventCache.flush);
