
            /*          alert(DOM("abu").value);   yada  alert(DOM("container","container2")[1].innerHTML);
                        amacına isteyen hemen ulaşsın diye.           */
// Amaç:
// Bu html dosyasında ki elementlere kolay erişim için yazılmış bir tooldur.
// Aldığı parametreyi dosya içinde arar ve bulduğu ID leri parametreyle aynı olan elementleri
// bir array haline getirerek kullanıcıya döndürür.
// Örnek Kullanım:
// DOM("span_element").innerHTML;
// DOM("form_element").value;
// Yada DOM("span_element", "span_element2")[0].innerHTML; şeklinde olabilir
// her işlem için kullanılabilir.
// DOM("div_element").style.visibity='hidden';  gibi


/// 14 Aralık Çarşamba 01:51 Selectlerde multiple seçilince []

//   ---------  15 Aralık Cumartesi 11:00 Formlar için dom yeinlendi
/*
 function DOM() {
    // Eger form içinde benzer bir hedef varsa önce onu döndürelim.
   if(window.event){
        e = window.event;
        src= e.srcElement;
        if(src)
        if(src.form){
            //alert("Formlu" + src.form[arguments[0]].name);
            if(src.form[arguments[0]]){
                return src.form[arguments[0]];
            }
        }
    }

   var elements = new Array();
   for (var i = 0; i < arguments.length; i++) {
         var element = arguments[i];
         if (typeof element == 'string')
           element = document.getElementById(element);
         if (arguments.length == 1){
                 //alert("DOM1:" + typeof element);
             return element;
         }
         elements.push(element);
     }
                      //alert("DOM2:" + typeof elements);
    return elements;
 }

*/

// ---------  15 Aralık 2006 Cumartesi 11:00 Formlar için dom yeinlendi
 function DOM() {
   if(arguments.length > 1 ){        //Eğer bir form adı ikinci parametre olarak verilmişse ona göre döndürelim
    if(DOM(arguments[1]) && DOM(arguments[1]).nodeName && DOM(arguments[1]).nodeName == "FORM");
    return document.forms[arguments[1]][arguments[0]];
   }
   else if(window.event){     // Eger form içinde benzer bir hedef varsa önce onu döndürelim.
    e = window.event;
    src= e.srcElement;
    if(src && src.form){
        if(src.form[arguments[0]]){
                        return src.form[arguments[0]];
        }
    }
   }
   return document.getElementById(arguments[0]);
 }

//---------------------------------------------------------

 function isOArray() {
    if (typeof arguments[0] == 'object') {
        var criterion = arguments[0].constructor.toString().match(/array/i);
         return (criterion != null);
    }
    return false;
 }

 function concatObj (ar1, ar2) {
        for(i in ar2){
                ar1[i] = ar2[i];
        }
        return ar1;
 }
 function getProps(el){
    var str= new Array();
    for ( i in el.attributes){
            if(el.attributes[i]){
            if(el.attributes[i].specified){
                str[i] = el.attributes[i].value ;
                }
            }
    }
    if(el.className) str['class'] = el.className;
    if(el.style) str['style'] = el.style; // style kisminda sadelestirme gerekebilir. Gerekli gereksiz bütün style  aliniyor. Ancak atanmis olanlari sesmek icap eder. Hiç olmazsa bos olanlari elemeli.
    return str;
 }
 // Bir formdaki bütün name olan taglari toplar getirir bir arrayin içine usulunca koyar.
 function getAllForm(formName){
    var arr= new Array;
//    var form = DOM(formName);
    var form = document.forms[formName];
    for(i=0;i<form.length; i++){
        if(form[i].name){// alert(form[i].name+': '+form[i].value);
        if(form[i].multiple)
            arr[form[i].name] =  multipleSelect(form[i]);
            else arr[form[i].name] = form[i].value;
      }
    }

    return arr;
 }
function copyDOM(dom){
    DOM('temp').innerHTML= dom.innerHTML;
    alert(DOM('temp').innerHTML);
    var nw = DOM('temp').firstChild;
    alert(nw);
    //DOM('temp').innerHTML='';
    return nw;
}
function selectSec(dom, index){
    if(dom.options[index].selected)
              dom.options[index].selected=false;
        else dom.options[index].selected=true;
}
/*
function updateTable(tbody, line){
    DOM('temp').innerHTML='<table><tbody>'+line+'</tbody></table>';
    var nw = DOM('temp').firstChild.firstChild.firstChild;
    var id=nw.id;
    var c=true;
    for(i in DOM(tbody).rows){
//        alert('')
        if(DOM(tbody).rows[i].id==id){
            c=false;
        }
    }
    if(c){
        DOM(tbody).appendChild(nw);
    }else{

    }
    DOM('temp').innerHTML='';

}*/
function replaceSpan(spanId, newInner){
    if(DOM(spanId))
        DOM(spanId).innerHTML = newInner;
/*    else alert(spanId+"bulamadik"); */
}


function replaceDOM(oldN,formName,newInner){
//    for(i in document.forms[formName])
    if(formName!=''){
        old = document.forms[formName][oldN];
        if(!old)
        {    form = DOM(formName);
            old = form[oldN];
        }
    }
    else old = DOM(oldN);
    if(!old) {alert("Degistirilecek combo box bulunamadi."); return false;}

    var newNod = document.createElement("SPAN");
    newNod.innerHTML=newInner;
    var parent = old.parentNode;
    var next   = old.nextSibling;
    parent.removeChild(old);
    parent.insertBefore(newNod,next);
}
/*function multipleSelect(sl, nm){
    var result = new Array();
    var t= sl.options.length;
    for(var i=0, j=0; i<t ; i++){
        if(sl.options[i].selected==true){
            alert(sl.options[i].value);
            var temp = new Array( nm+'['+j+']', sl.options[i].value);
            j++;
            result.push(temp);
        }
    }
    return result;
}*/
function multipleSelect(sl){
    var result="";
    if(! sl.options) return sl.value;
    var t= sl.options.length;
    for(var i=0, j=0; i<t ; i++){
        if(sl.options[i].selected==true){
//            if( j!=0 )    result +="||";
            //result += j+"[]"+sl.options[i].value;
            result += "<<"+j+">>"+sl.options[i].value+"<</"+j+">>";
            j++;
        }
    }
    //alert(result);
    return result;
}
function multipleSelectFirst(sl){
    if(! sl.options) return sl.value;
    var t= sl.options.length;
    for(var i=0, j=0; i<t ; i++){
        if(sl.options[i].selected==true){
            return sl.options[i].value;
        }
    }
    return "";
}


function printSpan(table, wd, ht){
    if(!wd) wd=750;     if(!ht) ht=550;
    if(wd==0) wd=750;     if(ht==0) ht=550;
    var OpenWindow=window.open("", "printPage", "height="+ht+", width="+wd+",toolbar=no,scrollbars=yes,menubar=yes, resizable=yes");
//    var OpenWindow= window.open("","MerhabaWorld","top=200,left=150,width=450,height=195,buttons=no,scrollbars=no,location=no,menubar=no,resizable=yes,status=no,directories=no,toolbar=no");

    var content = "<html>"
                + "<link rel='STYLESHEET' type='text/css' href='./include/css/tablesort.css'>"
                + "<script type='text/javascript' src='./include/js/tablesort.js'></script>    "
                + "<link rel='STYLESHEET' type='text/css' href='./include/css/tablesort.css'>   "
                + "<link rel='STYLESHEET' type='text/css' href='./include/css/style.php'>"
                + "<link id='luna-tab-style-sheet' rel='STYLESHEET' type='text/css' href='./include/css/luna/tab_print.css'>"
                + "<script language='JavaScript' type='text/javascript' src='./include/js/library.js'></script>"
                + "<style> body{ margin:0px,0px,0px,0px; font-face:arial; font-size:11;} .sort{ overflow : visible; }"
                + "button{visibility:'hidden';} .whiteBack{ overflow: visible; }@media screen { BODY {font-size:12pt;}}// When printed, the font size is 8pt.@media print {   BODY {font-size:8pt;}}</style>"
                + "<body bgcolor='#FFFFFF'>"
                + table.innerHTML
                + "</BODY>"
                + "</HTML>";
    OpenWindow.document.write(content);
    OpenWindow.print();
    OpenWindow.document.close();

//    alert(content);
/*    OpenWindow.document.write("<html>  <link rel='STYLESHEET' type='text/css' href='./include/css/tablesort.css'> <script type='text/javascript' src='./include/js/tablesort.js'></script>    ");
    OpenWindow.document.write("<link rel='STYLESHEET' type='text/css' href='./include/css/tablesort.css'>   ");
    OpenWindow.document.write("<link rel='STYLESHEET' type='text/css' href='./include/css/style.php'>");
    OpenWindow.document.write("<link id='luna-tab-style-sheet' rel='STYLESHEET' type='text/css' href='./include/css/luna/tab.css'>");
    OpenWindow.document.write("<script language='JavaScript' type='text/javascript' src='./include/js/library.js'></script>");

    OpenWindow.document.write("<body>");
    OpenWindow.document.write(table.innerHTML);
    OpenWindow.document.write("</BODY>");
    OpenWindow.document.write("</HTML>");
    OpenWindow.document.close();*/
//    self.name="main";
}

////////////////////////////////////////////// PARA KONTROL İÇİN /////////////////////////////////////

function veriKontrol(data, valid) {      // checks if all characters
                      //        var valid = "0123456789,.";     // are valid numbers or a "."
    var ok = 1; var checktemp;
    for (var i=0; i<data.length; i++) {
        checktemp = "" + data.substring(i, i+1);
        if (valid.indexOf(checktemp) == "-1")
            return 0;
    }
    return 1;
}


function paraGoster(th) { // idea by David Turley
//    field =
//    Num = "" + eval("DOM('" + field + "').value");
//    var val = th.value;

    if(th.value=='')
        return false;

    Num=th.value;
    Num=Num.replace(/\./g, "");
    dec = Num.indexOf(",");
    end = ((dec > -1) ? "" + Num.substring(dec,Num.length) : ",00");
    Num = "" + parseInt(Num);

    var temp1 = "";
    var temp2 = "";

    if (veriKontrol(Num, "0123456789,.") == 0) {alert("Para alanına yabancı karakter eklenmez."); th.value='';}
    else {

    if (end.length == 2) end += "0";
    if (end.length == 1) end += "00";
    if (end == "") end += ",00";

    var count = 0;
    for (var k = Num.length-1; k >= 0; k--) {
        var oneChar = Num.charAt(k);
        if (count == 3) {
            temp1 += ".";
            temp1 += oneChar;
            count = 1;
            continue;
        }
        else {
            temp1 += oneChar;
            count ++;
        }
    }//for

    for (var k = temp1.length-1; k >= 0; k--) {
        var oneChar = temp1.charAt(k);
        temp2 += oneChar;
    }
    temp2 = "" + temp2 + end;
//    eval("DOM('" + field + "').value" + temp2 + "';");
    th.value=temp2;
   }//else
}

function paraGosterSpan(th) { // idea by David Turley
//    field =
//    Num = "" + eval("DOM('" + field + "').value");
//    var val = th.value;

    if(th.value=='')
        return false;

    Num=th.innerHTML;
    Num=Num.replace(/\./g, "");
    dec = Num.indexOf(",");
    end = ((dec > -1) ? "" + Num.substring(dec,Num.length) : ",00");
    Num = "" + parseInt(Num);

    var temp1 = "";
    var temp2 = "";

    if (veriKontrol(Num, "0123456789,.") == 0) {alert("Para alanına yabancı karakter eklenmez."); th.value='';}
    else {

    if (end.length == 2) end += "0";
    if (end.length == 1) end += "00";
    if (end == "") end += ",00";

    var count = 0;
    for (var k = Num.length-1; k >= 0; k--) {
        var oneChar = Num.charAt(k);
        if (count == 3) {
            temp1 += ".";
            temp1 += oneChar;
            count = 1;
            continue;
        }
        else {
            temp1 += oneChar;
            count ++;
        }
    }//for

    for (var k = temp1.length-1; k >= 0; k--) {
        var oneChar = temp1.charAt(k);
        temp2 += oneChar;
    }
    temp2 = "" + temp2 + end;
//    eval("DOM('" + field + "').innerHTML" + temp2 + "';");
    th.innerHTML=temp2;
   }//else
}
////////////////////////////////////////////// PARA KONTROL İÇİN /////////////////////////////////////



function mstr_replace(t, u, s) {
  /*
  **  Replace a token in a string
  **    s  string to be processed
  **    t  token to be found and removed
  **    u  token to be inserted
  **  returns new String
  */
  i = s.indexOf(t);
  r = "";
  if (i == -1) return s;
  r += s.substring(0,i) + u;
  if ( i + t.length < s.length)
    r += mstr_replace(t, u, s.substring(i + t.length, s.length));
  return r;
}

function coz( coded_string ){// İıŞşĞğÜüÇçÖö
    coded_string  = mstr_replace("*(i)*", "ı", coded_string);
    coded_string  = mstr_replace("*(I)*", "İ", coded_string);
    coded_string  = mstr_replace("*(s)*", "ş", coded_string);
    coded_string  = mstr_replace("*(S)*", "Ş", coded_string);
    coded_string  = mstr_replace("*(g)*", "ğ", coded_string);
    coded_string  = mstr_replace("*(G)*", "Ğ", coded_string);
    coded_string  = mstr_replace("*(u)*", "ü", coded_string);
    coded_string  = mstr_replace("*(U)*", "Ü", coded_string);
    coded_string  = mstr_replace("*(c)*", "ç", coded_string);
    coded_string  = mstr_replace("*(C)*", "Ç", coded_string);
    coded_string  = mstr_replace("*(o)*", "ö", coded_string);
    coded_string  = mstr_replace("*(O)*", "Ö", coded_string);
    coded_string  = mstr_replace("*(a)*", "&", coded_string);
    return coded_string;
}

function kodla( coded_string ){   // İıŞşĞğÜüÇçÖö
    coded_string  = mstr_replace("ı", "*(i)*", coded_string);
    coded_string  = mstr_replace("İ", "*(I)*", coded_string);
    coded_string  = mstr_replace("ş", "*(s)*", coded_string);
    coded_string  = mstr_replace("Ş", "*(S)*", coded_string);
    coded_string  = mstr_replace("ğ", "*(g)*", coded_string);
    coded_string  = mstr_replace("Ğ", "*(G)*", coded_string);
    coded_string  = mstr_replace("ü", "*(u)*", coded_string);
    coded_string  = mstr_replace("Ü", "*(U)*", coded_string);
    coded_string  = mstr_replace("ç", "*(c)*", coded_string);
    coded_string  = mstr_replace("Ç", "*(C)*", coded_string);
    coded_string  = mstr_replace("ö", "*(o)*", coded_string);
    coded_string  = mstr_replace("Ö", "*(O)*", coded_string);
    coded_string  = mstr_replace("&", "*(a)*", coded_string);
    return coded_string;
}


function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
      xmlhttp.overrideMimeType("text/xml");
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}

/*function arrayToString2(parametreler){
    str= "";
    c=false;
    for (key in parametreler){
        var    aa = "";
        val = parametreler[key];
//        alert(typeof val);
        if( typeof val == "object"   ) {
            for (k in val){
                if(aa != "") aa +="||";
                aa += k+"[]"+val[k];
            }
            val = aa;
        }
        if(c) str=str+",,,";
        else c=true;
        str = str+ key + "-=>" + val;
    }
    return str;
}
*/
var counterForDoubleKeys =0 ;
function arrayToString2(parametreler){
    if( typeof parametreler == "object"   ) {
        var str ="";
        for (key in parametreler){
            var tmp = parseInt(key);        // bu satirlar neden koyuldu? -> [] ile yazilmis arraylerin keyleri 0,1,2 seklinmde gider, iç içe bu arrayler yazildigi zaman ise  <1><2><1></1></2></1> seklinde bir metin olusur. Bu ise okumada hatali bir metindir. Bu sebeple yani çift anahtar olmasin diye sayili anahtarlarin basina sürekli artarak degisen bir karakter koyuyuoruz.
            if(tmp || tmp ==0){
                    var tt = key+counterForDoubleKeys;
                    counterForDoubleKeys++;
            }else   var tt = key;
            str += "<<"+tt+">>" + arrayToString2(parametreler[key]) + "<</"+tt+">>";
        }
        return str;
    }else{
        return parametreler;
    }
}


function arrayToString(parametreler){
    str= "";
    c=false;

    for( i=0; i < parametreler.length; i++){
    if(c) str=str+",,,";
    else c=true;
    str = str+ parametreler[i][0] + "-=>" +parametreler[i][1];
    }
    return str;
}


function stringToArray(myString){
    // Düşünülen, ajaxtan dönen parametrelerin sabit olmasıdır.
     // Bu göre ajaxtan dönen her zaman 6 parametre olur
     //             islem_tipi,,,sonuc_OK_yada_ERROR,,,sonuc_yada_error_kodu,,,donen_parametre,,,türkçe_karakterleri_kodlanmış_sonuc_metini,,,calısacak_javascript_kodu,,,scripte_iliskin_bilgi_yada_ilerde_kullanılamk_uzere_dusunulmus_alan
    // Örneğin:        sehirEkle,,,OK,,,OK,,,411,,,*(*S*)*ehir listesine *(C)*ar*(s)*amba eklenmi*(s)*tir.
    // Örnek II:    sehirEkle,,,ERROR,,,ERRSHREKLE_001,,,411,,,*(C)*ar*(s)*amba *(s)*ehiri daha *(o)*nceden eklenmi*(s)*tir.
    // Sonuc[0]=islem_tipi : küçük harflerle yazılmış kelimeler _ ile birbirinden ayrılmıştır.
    // Sonuc[1]=sonuc_kodu İstenen : İşlemin gerçekleşip gerçekleşmemesine göre OK yada ERROR olacaktır
    // Sonuc[2]=sonuc_yada_error_kodu  : ERROR verildiğinde ERROR'un numarası yada kodu olacaktır. OK sonuçlarında OK dönecektir. Yada bış alan olarak kullanılabilecektir.
    // Sonuc[3]=serverdan yükleme tamamlandığında çalışacak Javascript olacaktır. Bu bir alanı güncellemek olabilir.
    // Sonuc[4]=anlatım: serverdan kulanıcıya gelen mesajdır.
    // Sonuc[5]=donen_parametre : Herhangi bir durumda kullanılmak üzere parametre için ayrılmıştır. Örneğin seçilen şehirin ID numarasını göstermek için kullanılabilir.
    // Sonuc[6]=ilerisi için düşünülmüş boş alandır. Yada scriptlerle ilgili kullanılabilir.

    return myString.split(",,,");
}
function clearSelect(name) {
    var select_box = document.getElementById(name);
    clearTopicList(select_box);
}

function appendOptionLast(box_name_select,optlabel,optvalue) {
//    if(!box_name_select.options){return false;}
//alert();
    var new_option = document.createElement('option');
    new_option.text = optlabel;
    new_option.value = optvalue;
    new_option.selected = true;
    try {
        box_name_select.add(new_option, null); // standards compliant; doesn't work in I
    }
      catch(ex) {
        box_name_select.add(new_option); // IE only
      }
}
function updateOption(box_name_select, optLabel,optValue, oldOptValue) {
    if(!box_name_select.options){return false;}
    var t= box_name_select.options.length;
    for(var i=0; i<t ; i++){
        if(box_name_select.options[i].value==oldOptValue){
            box_name_select.options[i].value = optValue;
            box_name_select.options[i].text = optLabel;
            break;
        }
    }
}
function removeOption(box_name_select, optValue) {
    if(!box_name_select.options){return false;}
    var t= box_name_select.options.length;
    for(var i=0; i<t ; i++){
        if(box_name_select.options[i].value==optValue){
            box_name_select.options[i]=null;
/*            box_name_select.options.length--;*/
            break;
        }
    }
}
function clearTopicList(box_name) {
    while (box_name.length > 0)
       box_name.remove(0);
}
function setID(list, value){
    for(i=0; i<list.length; i++){
        if(list.options[i].value== "-1"){
            list.options[i].value=value;
            list.options[i].selected=true;
            break;
        }
    }
    return list.options[i];
}


    function setLinkSrc( sStyle ) {
        document.getElementById( "luna-tab-style-sheet" ).disabled = sStyle != "luna";
    }

function addClassName(el, sClassName) {
    var s = el.className;
    var p = s.split(" ");
    var l = p.length;
    for (var i = 0; i < l; i++) {
        if (p[i] == sClassName)
            return;
    }
    p[p.length] = sClassName;
    el.className = p.join(" ");

}

function removeClassName(el, sClassName) {
    var s = el.className;
    var p = s.split(" ");
    var np = [];
    var l = p.length;
    var j = 0;
    for (var i = 0; i < l; i++) {
        if (p[i] != sClassName)
            np[j++] = p[i];
    }
    el.className = np.join(" ");
}

/// Verifications
function checkEmail(e) {
    var ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";
    for(i=0; i < e.length ; i++ ){
       if(ok.indexOf(e.charAt(i))<0){
         return (false);
       }
    } //for
    if (document.images) {
        re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
        re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
        if (!e.match(re) && e.match(re_two)) {
            return (-1);
        }
    }
}

function getkey(e)
{
if (window.event)
   return window.event.keyCode;
else if (e)
   return e.which;
else
   return null;
}

function goodchars(e,goods)
{
    var key, keychar;
    key = getkey(e);
    if (key == null) return true;

    // get character
    keychar = String.fromCharCode(key);
    keychar = keychar.toLowerCase();
    goods = goods.toLowerCase();
    if(goods.length==0) return true;

    // check goodkeys
    if (goods.indexOf(keychar) != -1)
        return true;

    // control keys
    if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
       return true;

    // else return false
    return false;
}

/*
function echeck(str) {

        var at="@"
        var dot="."
        var lat=str.indexOf(at)
        var lstr=str.length
        var ldot=str.indexOf(dot)
        if (str.indexOf(at)==-1){
           alert("Invalid E-mail ID")
           return false
        }

        if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
           alert("Invalid E-mail ID")
           return false
        }

        if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
            alert("Invalid E-mail ID")
            return false
        }

         if (str.indexOf(at,(lat+1))!=-1){
            alert("Invalid E-mail ID")
            return false
         }

         if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
            alert("Invalid E-mail ID")
            return false
         }

         if (str.indexOf(dot,(lat+2))==-1){
            alert("Invalid E-mail ID")
            return false
         }

         if (str.indexOf(" ")!=-1){
            alert("Invalid E-mail ID")
            return false
         }

          return true
    }

function ValidateForm(){
    var emailID=document.frmSample.txtEmail

    if ((emailID.value==null)||(emailID.value=="")){
        alert("Please Enter your Email ID")
        emailID.focus()
        return false
    }
    if (echeck(emailID.value)==false){
        emailID.value=""
        emailID.focus()
        return false
    }
    return true
 }*/

function StringtoFloat(a){
    var b= mstr_replace('.', '', a);
    var b= mstr_replace(',', '.', b);
    return parseFloat(b);
}
function FloattoString(a){
    b = a.toString();
    var b= mstr_replace('.', ',', a);
    return b;
}

