2016-10-10 10:24:03 +00:00
function pageManagerClass ( ) { } var ptrPageManagerClass ;
2016-10-19 06:03:36 +00:00
pageManagerClass . prototype = { loaded : null , depJS : null , depCSS : null , xhr : [ ] , activeXHR : null , page : null , vars : [ ] , root : "" , path : "" , jsPath : "js" , cssPath : "css" , pagelist : null , container : null , refresher : function ( ) { } , ajax : function ( b , c , d , a ) { var e ; e = this . xhr . push ( window . XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject ( "Microsoft.XMLHttpRequest" ) ) - 1 ; this . activeXHR = this . xhr [ e ] ; this . xhr [ e ] . addEventListener ( "readystatechange" , function ( a ) { if ( void 0 != this . xhr [ a ] && 4 === this . xhr [ a ] . readyState ) { - 1 < [ 0 , 200 ] . indexOf ( this . xhr [ a ] . status ) ?
c ( this . xhr [ a ] . responseText ) : c ( ) ; this . xhr [ a ] = null ; var b = ! 0 ; for ( a = 0 ; a < this . xhr . length ; a ++ ) if ( null !== this . xhr [ a ] ) { b = ! 1 ; break } b && ( this . xhr = [ ] ) } } . bind ( this , e ) , ! 1 ) ; d = "string" == typeof d && /^POST|GET$/i . test ( d ) ? d . toUpperCase ( ) : "POST" ; a = "POST" == d && "object" == typeof a && a instanceof FormData ? a : null ; this . xhr [ e ] . open ( d , b , ! 0 ) ; this . xhr [ e ] . send ( a ) ; return this } , explodeURL : function ( b ) { b = 1 <= arguments . length ? b : document . URL ; if ( null != this . pagelist && /^(?:(?:https?:\/\/)?[^\/]+)\/([a-z0-9_]+)\/?(?:\/((?:.+\/)+)\/?)?$/i . test ( b ) ) { for ( var c =
RegExp . $2 . split ( "/" ) ; "" == c [ c . length - 1 ] ; ) c . pop ( ) ; return - 1 < this . pagelist . indexOf ( RegExp . $1 ) ? { page : RegExp . $1 , "var" : c } : null } return null } , loadDependencies : function ( ) { "object" == typeof this . depCSS && this . depCSS instanceof Element && this . depCSS . parentNode == document . head && document . head . removeChild ( this . depCSS ) ; "object" == typeof this . depJS && this . depJS instanceof Element && this . depJS . parentNode == document . head && document . head . removeChild ( this . depJS ) ; this . ajax ( this . root + this . path + "/" + this . cssPath + "/" + this . page + ".css" ,
function ( b ) { null != b ? ( this . depCSS = document . createElement ( "link" ) , this . depCSS . rel = "stylesheet" , this . depCSS . type = "text/css" , this . depCSS . href = this . root + this . path + "/" + this . cssPath + "/" + this . page + ".css" , document . head . appendChild ( this . depCSS ) ) : console . warn ( "[loadDependencies_Error] - (" + this . root + this . path + "/" + this . cssPath + "/" + this . page + ".css)" ) } . bind ( this ) ) ; this . ajax ( this . root + this . path + "/" + this . jsPath + "/" + this . page + ".js" , function ( b ) { null != b ? ( this . depJS = document . createElement ( "script" ) , this . depJS . type = "text/javascript" ,
this . depJS . src = this . root + this . path + "/" + this . jsPath + "/" + this . page + ".js" , document . head . appendChild ( this . depJS ) ) : console . warn ( "[loadDependencies_Error] - (" + this . root + this . path + "/" + this . jsPath + "/" + this . page + ".js)" ) } . bind ( this ) ) } , updateURL : function ( ) { 0 < this . vars . length ? window . history . pushState ( this . page , this . page , this . root + "/" + this . page + "/" + this . vars . join ( "/" ) + "/" ) : window . history . pushState ( this . page , this . page , this . root + "/" + this . page + "/" ) } , setPage : function ( b , c , d , a , e ) { var f = "object" == typeof a && a instanceof
Array ? a : null ; if ( null != f ) for ( a = 0 ; a < f . length && ( f = "string" == typeof f [ a ] && /^[a-z0-9_]+$/i . test ( f [ a ] ) ? f : null , null != f ) ; a ++ ) ; this . pagelist = null != f ? f : this . pagelist ; this . root = "string" == typeof e ? e : this . root ; this . path = "string" == typeof c ? c : this . path ; this . container = "object" == typeof d && d instanceof Element ? d : this . container ; if ( this . pagelist && this . container ) if ( ! 0 === b ) this . ajax ( this . root + this . path + "/" + this . page + ".php" , function ( a ) { this . container . innerHTML = a ; this . loadDependencies ( ) ; this . refresher . apply ( this ) } . bind ( this ) ,
"POST" , g ) ; else if ( "string" == typeof b && - 1 < this . pagelist . indexOf ( b ) ) { this . page = b ; var g = new FormData ; for ( a = 0 ; a < this . vars . length ; a ++ ) g . append ( this . vars [ a ] , null ) ; this . ajax ( this . root + this . path + "/" + this . page + ".php" , function ( a ) { this . container . innerHTML = a ; this . loadDependencies ( ) } . bind ( this ) , "POST" , g ) ; this . updateURL ( ) } else if ( b = this . explodeURL ( ) , null != b ) { g = new FormData ; for ( a = this . vars . length = 0 ; a < b [ "var" ] . length ; a ++ ) this . vars [ a ] = b [ "var" ] [ a ] , g . append ( this . vars [ a ] , null ) ; if ( b . page == this . page ) return this ; this . page =
b . page ; this . ajax ( this . root + this . path + "/" + this . page + ".php" , function ( a ) { this . container . innerHTML = a ; this . loadDependencies ( ) } . bind ( this ) , "POST" , g ) ; this . updateURL ( ) } else this . setPage ( this . pagelist [ 0 ] ) ; else console . warn ( "pagelist et container manquant" ) ; return this } , refresh : function ( b ) { if ( b instanceof Function ) this . refresher = b ; else return this . setPage ( ! 0 ) } } ;