// Browser Microsoft ürünü ise isIE degeri doğru değilse yalnış yapılıyor...
var isIE = (navigator.appName.indexOf("Microsoft") > -1 ? true : false);
var FocusItemBackgroundColor = "#FFCCCC";
var BackgroundColor;
var theTimeout;
var pMinute = 20;

function SetBackgroundColor(elm, hasFocus) {
  if (hasFocus) {
    BackgroundColor = elm.style.backgroundColor;
    elm.style.backgroundColor = FocusItemBackgroundColor;
  }
  else {
    elm.style.backgroundColor = BackgroundColor;
  }
}

function SetTimeout () {
  theTimeout = setTimeout(LogoutUser, 1000 * 60 * pMinute);
}

function ClearTimeout () {
  clearTimeout(theTimeout);
  theTimeout = setTimeout(LogoutUser, 1000 * 60 * pMinute);
}

function LogoutUser() {
  if (document.getElementById("PFLogout") != null) {
    if (PMgr.submitProcessForm('PFLogout','EDEFLogout') == false) return false;
  }
}

function UpperMe(evt, langCode) {
  // Olay nesnesi gönderilmemiş ise (Microsoft IE için) evt olay nesnesi oluşturuluyor...
  var evt = (evt) ? evt : ((window.event) ? window.event : null);

  // Basılan tuş değeri alınıyor...
  var PressedKey = (evt.charCode) ? evt.charCode : evt.keyCode;

  // Dil kodu gönderilmemiş ise TR olarak kabul ediliyor...
  langCode = ((!langCode) ? "TR" : langCode.toUpperCase());

  // Basılan tuş büyük harfe çevrilebilecek bir karakter değilse çıkılıyor...
  if (PressedKey < 97 || (langCode == "TR" && (PressedKey == 286 || PressedKey == 220 || PressedKey == 350 || PressedKey == 304 || PressedKey == 214 || PressedKey == 199))) return;

  // Büyültülecek harler için dizi hazırlanıyor...
  var UpperCharArray = new Array();
  for (i = 97; i <= 351; i++) {
    if (i <= 122) {
      UpperCharArray[i] = i - 32;
    }
    else {
      UpperCharArray[i] = i;
    }
  }

  if (langCode == "TR") {
    // Çevirme işlemi Türkçe alfabe için yapılacak ise...
    // üğişçöı karakterleri ÜĞİŞÇÖI karakterlerine çeviriliyor...
    UpperCharArray[287] = 286;
    UpperCharArray[252] = 220;
    UpperCharArray[351] = 350;
    UpperCharArray[105] = 304;
    UpperCharArray[246] = 214;
    UpperCharArray[231] = 199;
    UpperCharArray[305] = 73;
  }
  else {
    // Çevirme işlemi İngilizce alfabe için yapılacak ise...
    // üğişçöı karakterleri UGISCOI karakterlerine çeviriliyor...
    UpperCharArray[287] = 71;
    UpperCharArray[252] = 85;
    UpperCharArray[351] = 83;
    UpperCharArray[105] = 73;
    UpperCharArray[246] = 79;
    UpperCharArray[231] = 67;
    UpperCharArray[305] = 73;
    // ÜĞİŞÇÖ karakterleri UGISCO karakterlerine çeviriliyor...
    UpperCharArray[286] = 71;
    UpperCharArray[220] = 85;
    UpperCharArray[350] = 83;
    UpperCharArray[304] = 73;
    UpperCharArray[214] = 79;
    UpperCharArray[199] = 67;
  }

  // Basılan karakter için döndürülecek büyük harf karakteri belirleniyor...
  var UpperChar = UpperCharArray[PressedKey];

  // Kullanılan Browser kontrol edilerek belirlenen büyük harf karakteri döndürülüyor...
  if (isIE) {
    evt.keyCode = UpperChar;
  }
  else {
    // Tuşa basma olayı iptal edilip büyük harf kodu içeren yeni tuşa basma olayı yaratılıyor...
    var newEvt = document.createEvent("KeyEvents");
    newEvt.initKeyEvent("keypress", true, true, document.defaultView, evt.ctrlKey, evt.altKey, evt.shiftKey, false, 0, UpperChar);
    evt.preventDefault();
    evt.target.dispatchEvent(newEvt);
  }
}

function LowerMe(evt, langCode) {
  // Olay nesnesi gönderilmemiş ise (Microsoft IE için) evt olay nesnesi oluşturuluyor...
  var evt = (evt) ? evt : ((window.event) ? window.event : null);

  // Basılan tuş değeri alınıyor...
  var PressedKey = (evt.charCode) ? evt.charCode : evt.keyCode;

  // Dil kodu gönderilmemiş ise TR olarak kabul ediliyor...
  langCode = ((!langCode) ? "TR" : langCode.toUpperCase());

  // Basılan tuş büyük harfe çevrilebilecek bir karakter değilse çıkılıyor...
  if (PressedKey < 65 || (langCode == "TR" && (PressedKey == 286 || PressedKey == 220 || PressedKey == 350 || PressedKey == 304 || PressedKey == 214 || PressedKey == 199))) return;

  // Küçültülecek harler için dizi hazırlanıyor...
  var LowerCharArray = new Array();
  for (i = 65; i <= 351; i++) {
    if (i <= 122) {
      LowerCharArray[i] = i - 32;
    }
    else {
      LowerCharArray[i] = i;
    }
  }

  if (langCode == "TR") {
    // Çevirme işlemi Türkçe alfabe için yapılacak ise...
    // ÜĞİŞÇÖI karakterleri üğişçöı karakterlerine çeviriliyor...
    LowerCharArray[286] = 287;
    LowerCharArray[220] = 252;
    LowerCharArray[350] = 351;
    LowerCharArray[304] = 105;
    LowerCharArray[214] = 246;
    LowerCharArray[199] = 231;
    LowerCharArray[73] = 305;
  }
  else {
    // Çevirme işlemi İngilizce alfabe için yapılacak ise...
    // üğişçöı karakterleri UGISCOI karakterlerine çeviriliyor...
    LowerCharArray[71] = 287;
    LowerCharArray[85] = 252;
    LowerCharArray[83] = 351;
    LowerCharArray[73] = 105;
    LowerCharArray[79] = 246;
    LowerCharArray[67] = 231;
    LowerCharArray[73] = 305;
    // ÜĞİŞÇÖ karakterleri UGISCO karakterlerine çeviriliyor...
    LowerCharArray[71] = 286;
    LowerCharArray[85] = 220;
    LowerCharArray[83] = 350;
    LowerCharArray[73] = 304;
    LowerCharArray[79] = 214;
    LowerCharArray[67] = 199;
  }

  // Basılan karakter için döndürülecek küçük harf karakteri belirleniyor...
  var LowerChar = LowerCharArray[PressedKey];

  // Kullanılan Browser kontrol edilerek belirlenen büyük harf karakteri döndürülüyor...
  if (isIE) {
    evt.keyCode = LowerChar;
  }
  else {
    // Tuşa basma olayı iptal edilip küçük harf kodu içeren yeni tuşa basma olayı yaratılıyor...
    var newEvt = document.createEvent("KeyEvents");
    newEvt.initKeyEvent("keypress", true, true, document.defaultView, evt.ctrlKey, evt.altKey, evt.shiftKey, false, 0, LowerChar);
    evt.preventDefault();
    evt.target.dispatchEvent(newEvt);
  }
}

function ValidateKey(evt, MatchString) {
  // Olay nesnesi gönderilmemiş ise (Microsoft IE için) evt olay nesnesi oluşturuluyor...
  var evt = (evt) ? evt : ((window.event) ? window.event : null);

  // Basılan tuş değeri alınıyor...
  var PressedKey = (evt.charCode) ? evt.charCode : evt.keyCode;

  //Eğer BACKSPACE, TAB, ENTER, SOLA OK, SAĞA OK, DELETE tuşlarından birine basıldı ise çıkılıyor...
  if (PressedKey == 8 || PressedKey == 9 || PressedKey == 13 || PressedKey == 37 || PressedKey == 39 || PressedKey == 46) return true;

  // Gönderilen MatchString değerinin ön tanımlı bir ifade olup olmadığı kontrol ediliyor...
  if (MatchString == 'eMail' || MatchString == 'Numeric' || MatchString == 'Alfabetic') {
    // Gönderilen regexp ifadesi alınıyor...
    if (MatchString == 'eMail') var re = /([a-z0-9_\.\-\@])+/;
    if (MatchString == 'Numeric') var re = /\d/;
    if (MatchString == 'Alfabetic') var re = /\D/;
  }
  else {
    // Gönderilen regexp ifadesi alınıyor...
    var re = new RegExp(MatchString);
  }

  // Basılan tuş uygun değilse çıkılıyor...
  if (!re.test(String.fromCharCode(PressedKey))) {
    // Kullanılan Browser kontrol edilerek belirlenen büyük harf karakteri döndürülüyor...
    if (isIE) {
      evt.returnValue = false;
    }
    else {
      // Tuşa basma olayı iptal ediliyor...
      evt.preventDefault();
    }
  }
}

function ValidateValue(elm, MatchString, Message) {
  // MatchString Examples  :
  // eMail : ^([a-zA-Z0-9_\\.\\-])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]){2,3}$
  // NumberOnly : \\d
  // AlfabeticOnly : \\D
  // Telephone : ^\\(([0-9]){3}\\)([0-9]){7}$

  // Değer boş ise çıkılıyor...
  if (elm.value == '') return true;

  // Gönderilen MatchString değerinin ön tanımlı bir ifade olup olmadığı kontrol ediliyor...
  if (MatchString == 'eMail' || MatchString == 'Numeric' || MatchString == 'Alfabetic') {
    // Gönderilen regexp ifadesi alınıyor...
    if (MatchString == 'eMail') var re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]){2,4}$/;
    if (MatchString == 'Numeric') var re = /\d/;
    if (MatchString == 'Alfabetic') var re = /\D/;
  }
  else {
    // Gönderilen regexp ifadesi alınıyor...
    var re = new RegExp(MatchString);
  }

  // Girilen değer uygun değilse çıkılıyor...
  if (!re.test(elm.value)) {
    alert(Message);
    var t = setTimeout("SetFocus('" + elm.id + "')", 500);
    return false;
  }
  return true;
}

function SetFocus(elmId) {
  var elm = document.getElementById(elmId);

  if (elm) {
    elm.focus();
    if (elm.value != '') elm.select();
  }
}

function LowerCase(elm) {
  // Değer boş ise çıkılıyor...
  if (elm.value == '') return true;

  // Türkçe harfler için çevrim yapılıyor...
  elm.value = elm.value.replace(/Ğ/g, 'ğ');
  elm.value = elm.value.replace(/Ü/g, 'ü');
  elm.value = elm.value.replace(/Ş/g, 'ş');
  elm.value = elm.value.replace(/İ/g, 'i');
  elm.value = elm.value.replace(/Ö/g, 'ö');
  elm.value = elm.value.replace(/Ç/g, 'ç');
  elm.value = elm.value.toLowerCase();

  return(elm.value);
}

function Trim (stringValue) {
  return(stringValue.replace(/^\s+|\s+$/g,""));
}

function CheckMaxLength(evt, elm, maxLength) {
  // Olay nesnesi gönderilmemiş ise (Microsoft IE için) evt olay nesnesi oluşturuluyor...
  var evt = (evt) ? evt : ((window.event) ? window.event : null);

  // Basılan tuş değeri alınıyor...
  var PressedKey = (evt.charCode) ? evt.charCode : evt.keyCode;

  if (PressedKey == 8 || PressedKey == 9) return true;

  // Uzunluk kotrolü yapılıyor...
  if (elm.value.length == maxLength) {
    // Kullanılan Browser kontrol edilerek belirlenen büyük harf karakteri döndürülüyor...
    if (isIE) {
      evt.keyCode = '';
    }
    else {
      // Tuşa basma olayı iptal edilip büyük harf kodu içeren yeni tuşa basma olayı yaratılıyor...
      evt.preventDefault();
    }
  }

  return true;
}

