2016-07-02 15:10:41 +00:00
function pageManagerClass ( ) { } var ptrPageManagerClass ;
pageManagerClass . prototype = { depJS : null , depCSS : null , xhr : [ ] , activeXHR : null , page : null , vars : [ ] , path : "" , jsPath : "js" , cssPath : "css" , pagelist : null , container : null , ajax : function ( b , c , f , a ) { for ( var d = 0 ; d < this . xhr . length ; d ++ ) this . xhr = this . xhr . slice ( 0 , d - 1 ) . concat ( this . xhr . slice ( d , this . xhr . length - 1 ) ) ; var e ; e = window . XMLHttpRequest ? this . xhr . push ( new XMLHttpRequest ) - 1 : this . xhr . push ( new ActiveXObject ( "Microsoft.XMLHttpRequest" ) ) - 1 ; this . activeXHR = this . xhr [ e ] ; var g = this ; this . xhr [ e ] . onreadystatechange = function ( ) { 4 == g . xhr [ e ] . readyState &&
2016-07-12 13:16:07 +00:00
( - 1 < [ 0 , 200 ] . indexOf ( g . xhr [ e ] . status ) ? c ( g . xhr [ e ] . responseText ) : c ( ) ) } ; f = "string" == typeof f && /^POST|GET$/i . test ( f ) ? f . toUpperCase ( ) : "POST" ; a = "POST" == f && "object" == typeof a && a instanceof FormData ? a : null ; this . xhr [ e ] . open ( f , 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 ) ?
2016-07-02 15:10:41 +00:00
{ 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 ) ; ptrPageManagerClass = this ; this . ajax ( this . path + "/" + this . cssPath + "/" + this . page + ".css" , function ( b ) { null != b ? ( ptrPageManagerClass . depCSS = document . createElement ( "link" ) ,
ptrPageManagerClass . depCSS . rel = "stylesheet" , ptrPageManagerClass . depCSS . type = "text/css" , ptrPageManagerClass . depCSS . href = ptrPageManagerClass . path + "/" + ptrPageManagerClass . cssPath + "/" + ptrPageManagerClass . page + ".css" , document . head . appendChild ( ptrPageManagerClass . depCSS ) ) : console . warn ( "[loadDependencies_Error] - (" + ptrPageManagerClass . path + "/" + ptrPageManagerClass . cssPath + "/" + ptrPageManagerClass . page + ".css)" ) } ) ; this . ajax ( this . path + "/" + this . jsPath + "/" + this . page + ".js" , function ( b ) { null != b ? ( ptrPageManagerClass . depJS =
document . createElement ( "script" ) , ptrPageManagerClass . depJS . type = "text/javascript" , ptrPageManagerClass . depJS . src = ptrPageManagerClass . path + "/" + ptrPageManagerClass . jsPath + "/" + ptrPageManagerClass . page + ".js" , document . head . appendChild ( ptrPageManagerClass . depJS ) ) : console . warn ( "[loadDependencies_Error] - (" + ptrPageManagerClass . path + "/" + ptrPageManagerClass . jsPath + "/" + ptrPageManagerClass . page + ".js)" ) } ) } , updateURL : function ( ) { 0 < this . vars . length ? window . history . pushState ( this . page , this . page , "/" + this . page + "/" + this . vars . join ( "/" ) +
"/" ) : window . history . pushState ( this . page , this . page , "/" + this . page + "/" ) } , setPage : function ( b , c , f , a ) { var d = "object" == typeof a && a instanceof Array ? a : null ; if ( null != d ) for ( a = 0 ; a < d . length && ( d = "string" == typeof d [ a ] && /^[a-z0-9_]+$/i . test ( d [ a ] ) ? d : null , null != d ) ; a ++ ) ; this . pagelist = null != d ? d : this . pagelist ; this . page = this . pagelist [ 0 ] ; this . path = "string" == typeof c ? c : this . path ; this . container = "object" == typeof f && f instanceof Element ? f : this . container ; if ( null != this . pagelist && null != this . container ) if ( "string" == typeof b && - 1 <
this . pagelist . indexOf ( b ) ) { this . page = b ; var e = this ; b = new FormData ; for ( a = 0 ; a < this . vars . length ; a ++ ) b . append ( this . vars [ a ] , null ) ; this . ajax ( this . path + "/" + this . page + ".php" , function ( a ) { e . container . innerHTML = a ; e . loadDependencies ( ) } , "POST" , b ) ; this . updateURL ( ) } else if ( c = this . explodeURL ( ) , null != c ) { this . page = c . page ; var g = this ; b = new FormData ; for ( a = this . vars . length = 0 ; a < c [ "var" ] . length ; a ++ ) this . vars [ a ] = c [ "var" ] [ a ] , b . append ( this . vars [ a ] , null ) ; this . ajax ( this . path + "/" + this . page + ".php" , function ( a ) { g . container . innerHTML =
a ; g . loadDependencies ( ) } , "POST" , b ) ; this . updateURL ( ) } else this . setPage ( this . pagelist [ 0 ] ) ; else console . warn ( "pagelist et container manquant" ) ; return this } , refresh : function ( ) { this . setPage ( this . page ) ; return this } } ;