﻿/*Genel kullanımlı paging ve div için data çeken ajax kodları başladı*/
//-----------------------------------------------------------------------------------------

function XslParsedLists(){
    this.ListItems = new Object();
    this.ListItems.ObjectId = '';
    this.ListItems.Type = '';
    this.ListItems.KeyValueList = new Array();
    this.ListItems.KeyValueListForXsl = new Array();
    this.ListItems.hideObjectList = new Array();
}

//Key value array
XslParsedLists.prototype.KeyValue = function(key, value){
    var KeyValues = new Object();
    KeyValues.Key = key;
    KeyValues.Value = value;
    this.ListItems.KeyValueList.push(KeyValues);          
};

//Set Key value array
XslParsedLists.prototype.SetKeyValue = function(key, value){
    var KeyValues = new Object();
    KeyValues.Key = key;
    KeyValues.Value = value;
    for (var i=0;i<this.ListItems.KeyValueList.length;i++)
       {
          if(this.ListItems.KeyValueList[i].Key == KeyValues.Key)
              this.ListItems.KeyValueList[i].Value = KeyValues.Value;
       }
};

//Remove Key value array
XslParsedLists.prototype.RemoveKey = function(key){
    for (var i=0;i<this.ListItems.KeyValueList.length;i++)
       {
          if(this.ListItems.KeyValueList[i].Key == key)
            {
              if (i>0)
                  this.ListItems.KeyValueList = this.ListItems.KeyValueList.splice(i-1,1);
              if (i=0)    
                  this.ListItems.KeyValueList = this.ListItems.KeyValueList.splice(0,1);
            }
       }
    
};


//Clear Key value array
XslParsedLists.prototype.Clear = function(){
    for (var i=0;i<this.ListItems.KeyValueList.length;i++)
       {
        this.ListItems.KeyValueList = this.ListItems.KeyValueList.splice(this.ListItems.KeyValueList.length,1);
       }
};

//Key value array
XslParsedLists.prototype.KeyValueForXsl = function(key, value){
    var KeyValues = new Object();
    KeyValues.Key = key;
    KeyValues.Value = value;
    this.ListItems.KeyValueListForXsl.push(KeyValues);
};

//Liste çekiliyor.
XslParsedLists.prototype.GetLists = function(type, objectId){
    this.ListItems.Type = type;
    this.ListItems.ObjectId = objectId;
    loading(objectId);
    BizNet.Business.Ajax.Utility2.getXslParsedData(this.ListItems, this.callback_GetList);
};

//Liste çekiliyor.
XslParsedLists.prototype.GetListsSync = function(type){
    this.ListItems.Type = type;
    return BizNet.Business.Ajax.Utility2.getXslParsedData(this.ListItems);
};

//Liste çekiliyor.
XslParsedLists.prototype.GetListsForRSS = function(type, objectId){
    loading(objectId);
    this.ListItems.Type = type;
    this.ListItems.ObjectId = objectId;
    BizNet.Business.Ajax.Utility2.getXslParsedDataForRSS(this.ListItems, this.callback_GetList);
};

//Liste çekiliyor.
XslParsedLists.prototype.GetListsForAlert = function(type){
    this.ListItems.Type = type; 
    this.ListItems.ObjectId = 'divAlertData';
    BizNet.Business.Ajax.Utility2.getXslParsedData(this.ListItems, this.callbackAlert_GetList);
};

//Asenkron çağırma fonksiyonu
XslParsedLists.prototype.callback_GetList = function(res)
{
    SetXslParsedValues(res, true);
};

//Asenkron çağırma fonksiyonu
XslParsedLists.prototype.callbackAlert_GetList = function(res)
{
    SetXslParsedAlert(res, true);
};

function SetXslParsedValues(res){
    if(res.value == null)return '';
    
    var objectId = res.value.ObjectId;
    var result = res.value.Result;
    var hideObjectList = res.value.HideObjectList;
    
    if(document.getElementById(objectId) == null)return '';
     
    
    var objDiv = document.getElementById(objectId);
    
    //if((result.length > 0 && document.getElementById(objectId).innerHTML.length > 0) || result.length > 0){
    if(result.length > 0){
        //Contenti div'in içerisine ekliyor
        document.getElementById(objectId).style.display = 'block';
        /*if(window.navigator.appName == "Microsoft Internet Explorer"){
            document.getElementById(objectId).style.setAttribute("cssText", "");
        }
        else{
            document.getElementById(objectId).setAttribute("style", "");
        }*/
        
        for(var i=0; i<hideObjectList.length; i++){
            var objId = hideObjectList[i].replace('"','').replace('"','');
            document.getElementById(objId).style.display = 'none';
        }

        if((/Safari[\/\s](\d+\.\d+)/.test(navigator.userAgent)) ||
            (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent))){
            //mdernek - Script çalıştırılması için eklendi
            //----------------
            arrayList = res.value.Result.split(/<script.*>/im);
            
            if(arrayList.length > 0){
                var head = document.getElementsByTagName("head")[0];
                var script, scripts, arrayList, xslScriptName;
                xslScriptName = "xslScript_" + objectId;
                
                if(document.getElementById(xslScriptName)){
                    var oldScript = document.getElementById(xslScriptName);
                    oldScript.parentNode.removeChild(oldScript);
                }
                
                script = document.createElement("script"); 
                script.id= xslScriptName;
                script.type = "text/javascript"; 
                
                for(var i=0; i<arrayList.length; i++){
                    var txt = arrayList[i].replace(/^\s+|\s+$/g,"");
                    var indxOf = txt.indexOf('</script>');
                    if(indxOf > -1)
                        scripts = scripts + " \r\n " + txt.substr(0, indxOf);
                }

                if(typeof(scripts) != 'undefined'){
                    script.text = scripts.replace(/<script.*>/im,'').replace('undefined','');
                    head.appendChild(script);
                }
            }
        }
        
        var newElement = objDiv.cloneNode(false);
        newElement.innerHTML = res.value.Result;
        objDiv.parentNode.replaceChild(newElement, objDiv);
        //----------------
        
        //Old code
        //document.getElementById(objectId).innerHTML = result;
    }
    else{
        document.getElementById(objectId).innerHTML = '';
        document.getElementById(objectId).style.display = 'none';
        
        for(var i=0; i<hideObjectList.length; i++){
            var objId = hideObjectList[i].replace('"','').replace('"','');
            document.getElementById(objId).style.display = 'inline';
        }
    }
}


function SetXslParsedAlert(res){
    if(res.value == null)return '';
    
    var objectId = res.value.ObjectId;
    var result = res.value.Result;
    var hideObjectList = res.value.HideObjectList;
    
    //if(document.getElementById(objectId) == null)return '';
     
    var objDiv = document.getElementById(objectId);
    
    if(result.length > 0){
        //Contenti div'in içerisine ekliyor
        //document.getElementById(objectId).style.display = 'block';
        
//        for(var i=0; i<hideObjectList.length; i++){
//            var objId = hideObjectList[i].replace('"','').replace('"','');
//            document.getElementById(objId).style.display = 'none';
//        }

        if((/Safari[\/\s](\d+\.\d+)/.test(navigator.userAgent)) ||
            (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent))){
            //mdernek - Script çalıştırılması için eklendi
            //----------------
            arrayList = res.value.Result.split(/<script.*>/im);
            
            if(arrayList.length > 0){
                var head = document.getElementsByTagName("head")[0];
                var script, scripts, arrayList, xslScriptName;
                xslScriptName = "xslScript_" + objectId;
                
                if(document.getElementById(xslScriptName)){
                    var oldScript = document.getElementById(xslScriptName);
                    oldScript.parentNode.removeChild(oldScript);
                }
                
                script = document.createElement("script"); 
                script.id= xslScriptName;
                script.type = "text/javascript"; 
                
                for(var i=0; i<arrayList.length; i++){
                    var txt = arrayList[i].replace(/^\s+|\s+$/g,"");
                    var indxOf = txt.indexOf('</script>');
                    if(indxOf > -1)
                        scripts = scripts + " \r\n " + txt.substr(0, indxOf);
                }

                if(typeof(scripts) != 'undefined'){
                    script.text = scripts.replace(/<script.*>/im,'').replace('undefined','');
                    head.appendChild(script);
                }
            }
        }
        
        documentOverlay.show('doc_alertData');
        
        // ktezgel (04.02.2010)
        //iç içe 2 alert penceresi çıkıyordu. bunu engellemek için eklendi.
        if (objDiv != null)
            document.body.removeChild(objDiv);
        
   	    var newdiv0 = document.createElement('div');
   	    newdiv0.setAttribute('id', objectId);
   	    newdiv0.className = 'popupOutDiv';
   	    newdiv0.align = 'center';
   	    
        var newdiv = document.createElement('div');
        
        //newdiv.setAttribute('id', objectId);
        //newdiv.className = 'absAlertData';
        newdiv.className = 'absPopup';
        //newdiv.style.position = 'absolute'
        //newdiv.style.zIndex = 1000;
   	    //newdiv.style.left = left + 'px';
   	    //newdiv.style.top = top + 'px';
       
        newdiv.innerHTML = res.value.Result;
        newdiv0.appendChild(newdiv);
        
        document.getElementsByTagName('body')[0].appendChild(newdiv0);
        
        var objNewId = document.getElementById(objectId);
        var _left = (screen.width - objNewId.clientWidth) / 2;
   	    var _top = (screen.height - objNewId.clientHeight) / 2;
   	    var scrollPos = getScrollingPosition();
   	    _top = _top + scrollPos[1]-80;
   	    
        //objNewId.setAttribute('style','position:absolute;top:'+top+'px;left:'+left+'px;');
        objNewId.style.position = 'absolute';
        objNewId.style.top = _top.toString()+'px';
        //objNewId.style.left = _left.toString()+'px;';
        //----------------
    }
    else{
        document.getElementById(objectId).innerHTML = '';
        document.getElementById(objectId).style.display = 'none';
        
        for(var i=0; i<hideObjectList.length; i++){
            var objId = hideObjectList[i].replace('"','').replace('"','');
            document.getElementById(objId).style.display = 'inline';
        }
    }
}

/*Genel kullanımlı paging ve div için data çeken ajax kodları bitti*/
//-----------------------------------------------------------------------------------------

