﻿var virtualURL;
//Adresteki bir parametreyi değeriyle birlikte yok eder
function removeURLParam(param,url){
url=url.replace(new RegExp('([\#&]'+param+')=([^&]*)', 'g' ),'');
return(url);
}
//Adresin # den sonraki kısımdaki parametrenin değerini döner
function getURLParam(param,query){
 var pattern = new RegExp( '([\#&]'+param+')=([^&]*)', 'g');

 if(isEmpty(query)){
    if(query.indexOf('#')!=-1)
        query='#'+query.split('#')[1];
    else
        query='#';
    }
 
 var result=pattern.exec(query);
 if(result&&result[2])
    return (result[2]);  
 
 return null;
 }
 //Adresin # den sonraki kısımdaki parametreyi varsa değiştirir yoksa ekler
 function setURLParam(param,value,vUrl,historyCall){
 var url=isEmpty(vUrl)?window.location.href:virtualURL;
 var vars=url.split('#');
 var query;
 if(vars.length>1)
    query=vars[1];
 if(query){
     query='#'+query;
     
     if(query.indexOf(param)!=-1)     
        query=query.replace(new RegExp( "([\#&]"+param+")=([^&]*)", "g" ),"$1="+value);
     else
        query=query+'&'+param+'='+value;
 }else 
    query='#'+param+'='+value;

if(query.length>3)
    if(vUrl)
        virtualURL=url.split('#')[0]+query;
    else
       {
       location.href=url.split('#')[0]+query;
       
        if(historyCall!=1)
            addHistory();
       //getElm('historyHack').src=ROOT_URL+'Pages/History.html?history='+query.substr(1,query.length-1);
       }
 }
 
 //a=&b=2.. şeklinde gelen Main Content parametrelerini adres çubuğuna yazar.
 function setURLMCParams(params,vUrl,historyCall){
 var query='#';
 var url=isEmpty(vUrl)?window.location.href:virtualURL;
 var tb=getURLParam('tb',url);
 var leftmenu=getURLParam('leftmenu',url);

 if(tb && tb!='')
    query+='tb='+tb+'&';
 if(leftmenu && leftmenu!='')
    query+='leftmenu='+leftmenu+'&';
   
 query+=params; 
 if(!isEmpty(vUrl))
    virtualURL=url.split('#')[0]+query;
 else if(query.length >3){
    location.href=url.split('#')[0]+query;
     
    if(historyCall!=1)
        addHistory();
    //getElm('historyHack').src=ROOT_URL+'Pages/History.html?history='+query.substr(1,query.length-1);
    }
 }
 
 //Sayfa yüklenirken #parametrelere gerekli yönlendirmeyi yapar.
 
 function evalParams(){
 var url=window.location.href;

 if(url.indexOf('#')!=-1){
    var goUrl=ROOT_URL.substring(0,ROOT_URL.length-1);
    var query=url.split('#')[1];
    
    if(query && query.length>2){//yonlendirme gereken bir paramtre varmı
        var lm=getURLParam('leftmenu',location.href); 
        var mm=getURLParam('maincontent',location.href);
        var sQ=url.substring(ROOT_URL.length-1,url.indexOf('.html')).split('/');//leftmenu/maincontent

        if((!lm || lm=='')&&sQ.length>1)//#den sonraki parametrelerde yoksa root a bak
            lm=sQ[1];
        if((!mm || mm=='')&&sQ.length>2)//#den sonraki parametrelerde yoksa root a bak
            mm=sQ[2];
         
        if(lm && lm!='')
            goUrl+='/'+lm;
        else
            goUrl+='/Home';
            
        if(mm && mm!='')  
                goUrl+='/'+mm;   
            
            
        query='#'+query;
        query=removeURLParam('leftmenu',query);          
        query=removeURLParam('maincontent',query);

        if((query.indexOf('tb')==-1) && (url.indexOf('tb')!=-1)){
            var tb=getURLParam('tb',(url.replace('#','&')).replace('?','#'));
            if(tb && tb!='')
                query='&tb='+tb+query;
        }
       
        goUrl+='.html';
        if(query.length>1)
            goUrl+='?'+query.substring(1);
          window.location.href=goUrl;
        
      }
    }
 return true;
 }
 var ajaxCall=true;
 function addHistory(){
 ajaxCall=true;
 var h=window.frames['historyHack'];
  if(!isEmpty(h))
    h.location=ROOT_URL+'Pages/history.html?historyLeftmenu='+historyLeftmenu+'&historyContainer='+encodeURIComponent(historyContainer)+'&historyUrl='+encodeURIComponent(historyUrl).replace('.html','.$$$')+'&historyParams='+encodeURIComponent(historyParams)+'&historyMethod='+encodeURIComponent(historyMethod);
      
 }
 
 