2016-11-28 11:47:06 +00:00
function inputFacebookFiche ( a , b ) { this . container = a ; this . nav _container = b ; this . top _size = 10 }
inputFacebookFiche . prototype = { container : this . container , nav _container : this . nav _container , selected : 0 , handler : null , defaultData : { sexe : "2" , age : "." , interest : "." , relmark : "." , job : "." , famsit : "0" , studies : "0" , reltype : "0" , reltypeSpecial : "" , city : "" , quartier : "" , cp : "" , loc : "0" , duration : [ "" , "" ] , context : "0" , contextSpecial : [ "" , "" , "" ] , freq : [ "3" , "8" , "13" , "18" , "23" ] , irlfreq : [ "3" , "8" , "13" , "18" , "23" ] , connect : "1 3 5 7 9 11" . split ( " " ) , connectSpecial : [ "" , "" ] , medsoc : "0" , medrel : "0" , timestamp : 0 , valid : ! 1 } } ;
inputFacebookFiche . prototype . fieldsToStorage = function ( ) { console . group ( "[facebook.fiche] fields to storage" ) ; var a , b , c , d , e , h = $$ ( '[data-sublink="facebook"] article.relation-panel .fiche-relation' ) ; a = 0 ; for ( b = h . length ; a < b ; a ++ ) if ( c = new FormDeflater ( h [ a ] , [ "input" , "select" ] , [ "data-name" ] ) , d = c . deflate ( ) , c = lsi . get ( "f_fiches" , d . uid ) ) d = { sexe : d . sexe , age : d . age , interest : d . interest , relmark : d . relmark , job : d . job , famsit : d . famsit , studies : d . studies , reltype : d . reltype , reltypeSpecial : d . reltypeSpecial , city : d . city , quartier : d . quartier ,
cp : d . cp , loc : d . loc , duration : d . duration , context : d . context , medsoc : d . medsoc , medrel : d . medrel , contextSpecial : d . contextSpecial , freq : d . freq , irlfreq : d . irlfreq , connect : d . connect , connectSpecial : d . connectSpecial , uid : parseInt ( d . uid ) , contact : parseInt ( d . contact ) } , e = crc32 ( JSON . stringify ( d ) ) , c . hasOwnProperty ( "hash" ) && e == c . hash || ( d . hash = e , d . valid = this . check ( d ) , d . timestamp = Date . now ( ) , console . warn ( "> FICHE UPDATE (" + ( d . timestamp - input _ts ) + ")" ) , lsi . set ( "f_fiches" , d . uid , d ) ) ; console . groupEnd ( ) } ;
2016-10-12 14:20:46 +00:00
inputFacebookFiche . prototype . add = function ( a ) { if ( null == a . uid || isNaN ( a . uid ) || null == a . contact || isNaN ( a . contact ) ) return ! 1 ; a . city = null != a . city ? a . city : this . defaultData . city ; a . quartier = null != a . quartier ? a . quartier : this . defaultData . quartier ; a . cp = null != a . cp ? a . cp : this . defaultData . cp ; a . duration [ 0 ] = null != a . duration [ 0 ] ? a . duration [ 0 ] : this . defaultData . duration [ 0 ] ; a . duration [ 1 ] = null != a . duration [ 1 ] ? a . duration [ 1 ] : this . defaultData . duration [ 1 ] ; a . reltypeSpecial = null != a . reltypeSpecial ? a . reltypeSpecial : this . defaultData . reltypeSpecial ;
a . contextSpecial [ 0 ] = null != a . contextSpecial [ 0 ] ? a . contextSpecial [ 0 ] : this . defaultData . contextSpecial [ 0 ] ; a . contextSpecial [ 1 ] = null != a . contextSpecial [ 1 ] ? a . contextSpecial [ 1 ] : this . defaultData . contextSpecial [ 1 ] ; a . contextSpecial [ 2 ] = null != a . contextSpecial [ 2 ] ? a . contextSpecial [ 2 ] : this . defaultData . contextSpecial [ 2 ] ; a . connectSpecial [ 0 ] = null != a . connectSpecial [ 0 ] ? a . connectSpecial [ 0 ] : this . defaultData . connectSpecial [ 0 ] ; a . connectSpecial [ 1 ] = null != a . connectSpecial [ 1 ] ? a . connectSpecial [ 1 ] : this . defaultData . connectSpecial [ 1 ] ;
2016-11-28 11:47:06 +00:00
a . job = null != a . job ? a . job : this . defaultData . job ; a . studies = null != a . studies ? a . studies : this . defaultData . studies ; a . age = null != a . age ? a . age : this . defaultData . age ; a . interest = null != a . interest ? a . interest : this . defaultData . interest ; a . relmark = null != a . relmark ? a . relmark : this . defaultData . relmark ; a . sexe = null != a . sexe ? a . sexe : this . defaultData . sexe ; a . famsit = null != a . famsit ? a . famsit : this . defaultData . famsit ; a . reltype = null != a . reltype ? a . reltype : this . defaultData . reltype ; a . loc = null != a . loc ? a . loc : this . defaultData . loc ; a . context = null !=
a . context ? a . context : this . defaultData . context ; a . medsoc = null != a . medsoc ? a . medsoc : this . defaultData . medsoc ; a . medrel = null != a . medrel ? a . medrel : this . defaultData . medrel ; a . freq = null != a . freq ? a . freq : this . defaultData . freq ; a . irlfreq = null != a . irlfreq ? a . irlfreq : this . defaultData . irlfreq ; a . connect = null != a . connect ? a . connect : this . defaultData . connect ; var b = lsi . get ( "f_contacts" , a . contact ) ; if ( ! 1 === b ) return ! 1 ; var c = "" ; isNaN ( b . existing ) || ( c = lsi . get ( "f_friends" , b . existing ) , b . username = c . name , a . age = c . age , a . sexe = c . sexe , a . loc = c . dist ,
isNaN ( c . reltype ) ? ( a . reltype = 10 , a . reltypeSpecial = c . reltype ) : ( a . reltype = c . reltype , a . reltypeSpecial = "" ) , null != c . studies2 ? ( a . studies = c . studies2 , a . interest = c . interest , a . relmark = c . relmark , a . job = c . job , a . famsit = c . famsit , a . city = c . city , a . cp = c . cp , a . quartier = c . quartier , a . duration [ 0 ] = c . duration [ 0 ] , a . duration [ 1 ] = c . duration [ 1 ] , a . context = c . context , a . medsoc = c . medsoc , a . medrel = c . medrel , a . contextSpecial = c . contextExtra , a . connect = c . connect , a . connectSpecial = c . connectExtra , a . freq = c . freq , a . irlfreq = c . irlfreq , c = "Contact import\u00e9: non modifiable!" ) :
c = "Contact import\u00e9 (incomplet): modifiable partiellement!" ) ; this . container . innerHTML += fFicheBuilder . build ( { importedfiche : c , name : b . username , countcall : b . countcall , countsms : b . countsms , uid : a . uid , contact : a . contact , city : a . city , quartier : a . quartier , cp : a . cp , duration0 : a . duration [ 0 ] , duration1 : a . duration [ 1 ] , reltypespecial : a . reltypeSpecial , contextspecial0 : a . contextSpecial [ 0 ] , contextspecial1 : a . contextSpecial [ 1 ] , contextspecial2 : a . contextSpecial [ 2 ] , connectspecial0 : a . connectSpecial [ 0 ] , connectspecial1 : a . connectSpecial [ 1 ] } ) ;
b = $ ( '[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>span>select[data-name="job"]>option[value="' + a . job + '"]' ) ; null != b && b . setAttribute ( "selected" , "selected" ) ; b = $ ( '[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>span>select[data-name="studies"]>option[value="' + a . studies + '"]' ) ; null != b && b . setAttribute ( "selected" , "selected" ) ; b = $ ( '[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="' +
a . uid + '"] ~ h5>span>select[data-name="age"]>option[value="' + a . age + '"]' ) ; null != b && b . setAttribute ( "selected" , "selected" ) ; b = $ ( '[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>span>select[data-name="interest"]>option[value="' + a . interest + '"]' ) ; null != b && b . setAttribute ( "selected" , "selected" ) ; b = $ ( '[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>span>select[data-name="relmark"]>option[value="' + a . relmark + '"]' ) ; null !=
b && b . setAttribute ( "selected" , "selected" ) ; c = $$ ( '[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="sexe"]' ) ; for ( b = 0 ; b < c . length ; b ++ ) c [ b ] . value == a . sexe ? c [ b ] . setAttribute ( "checked" , "checked" ) : c [ b ] . removeAttribute ( "checked" ) ; c = $$ ( '[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="famsit"]' ) ; for ( b = 0 ; b < c . length ; b ++ ) c [ b ] . value == a . famsit ? c [ b ] . setAttribute ( "checked" ,
"checked" ) : c [ b ] . removeAttribute ( "checked" ) ; c = $$ ( '[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="reltype"]' ) ; for ( b = 0 ; b < c . length ; b ++ ) c [ b ] . value == a . reltype ? c [ b ] . setAttribute ( "checked" , "checked" ) : c [ b ] . removeAttribute ( "checked" ) ; c = $$ ( '[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="loc"]' ) ; for ( b = 0 ; b < c . length ; b ++ ) c [ b ] . value == a . loc ? c [ b ] . setAttribute ( "checked" ,
"checked" ) : c [ b ] . removeAttribute ( "checked" ) ; c = $$ ( '[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="context"]' ) ; for ( b = 0 ; b < c . length ; b ++ ) c [ b ] . value == a . context ? c [ b ] . setAttribute ( "checked" , "checked" ) : c [ b ] . removeAttribute ( "checked" ) ; c = $$ ( '[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="medsoc"]' ) ; for ( b = 0 ; b < c . length ; b ++ ) c [ b ] . value == a . medsoc ? c [ b ] . setAttribute ( "checked" ,
"checked" ) : c [ b ] . removeAttribute ( "checked" ) ; c = $$ ( '[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="medrel"]' ) ; for ( b = 0 ; b < c . length ; b ++ ) c [ b ] . value == a . medrel ? c [ b ] . setAttribute ( "checked" , "checked" ) : c [ b ] . removeAttribute ( "checked" ) ; c = $$ ( '[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="freq"]' ) ; for ( b = 0 ; b < c . length ; b ++ ) - 1 < a . freq . indexOf ( c [ b ] . value ) ? c [ b ] . setAttribute ( "checked" ,
"checked" ) : c [ b ] . removeAttribute ( "checked" ) ; c = $$ ( '[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="irlfreq"]' ) ; for ( b = 0 ; b < c . length ; b ++ ) - 1 < a . irlfreq . indexOf ( c [ b ] . value ) ? c [ b ] . setAttribute ( "checked" , "checked" ) : c [ b ] . removeAttribute ( "checked" ) ; c = $$ ( '[data-sublink="facebook"] article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="connect"]' ) ; for ( b = 0 ; b < c . length ; b ++ ) - 1 < a . connect . indexOf ( c [ b ] . value ) ?
c [ b ] . setAttribute ( "checked" , "checked" ) : c [ b ] . removeAttribute ( "checked" ) } ; inputFacebookFiche . prototype . storageToFields = function ( ) { console . group ( "[facebook.fiche] storage to fields" ) ; var a , b = lsi [ "export" ] ( "f_fiches" ) ; this . container . innerHTML = "" ; for ( var c in b ) a = cloneObject ( b [ c ] ) , delete a . hash , delete a . timestamp , delete a . valid , b [ c ] . hash = crc32 ( JSON . stringify ( a ) ) , lsi . set ( "f_fiches" , b [ c ] . uid , b [ c ] ) , b [ c ] . uid == this . selected && this . add ( b [ c ] ) ; this . updateNavBar ( ) ; console . groupEnd ( ) } ;
inputFacebookFiche . prototype . sync = function ( ) { console . group ( "[facebook.fiche] synchronisation" ) ; lsi [ "export" ] ( "f_contacts" ) ; var a , b , c , d ; d = lsi . keys ( "f_contacts" ) . length < 2 * this . top _size ? lsi . keys ( "f_contacts" ) . length : 2 * this . top _size ; for ( b = 0 ; b < d ; b ++ ) a = lsi . get ( "f_fiches" , b ) , ! a && ( a = this . defaultData ) , a . uid = b , a . contact = b , lsi . set ( "f_fiches" , b , a ) ; var e , h , g ; d = { } ; var l = { } ; a = lsi [ "export" ] ( "f_fiches" ) ; b = lsi [ "export" ] ( "f_mini-fiches" ) ; for ( var k in a ) if ( e = lsi . get ( "f_contacts" , a [ k ] . contact ) , ! ( 0 < e . username . length &&
void 0 != d [ e . username ] || 0 == e . username . length && void 0 != l [ e . existing ] ) && ( 0 < e . username . length ? d [ e . username ] = 0 : l [ e . existing ] = 0 , e ) ) { var f = [ [ "fiche" , a [ k ] ] ] ; for ( c in a ) h = lsi . get ( "f_contacts" , a [ c ] . contact ) , c != k && h && ( g = 0 < h . username . length && e . username === h . username , h = ! isNaN ( h . existing ) && e . existing === h . existing , ( g || h ) && f . push ( [ "fiche" , a [ c ] ] ) ) ; for ( c in b ) h = lsi . get ( "f_contacts" , b [ c ] . contact ) , g = 0 < h . username . length && e . username === h . username , h = ! isNaN ( h . existing ) && e . existing === h . existing , ( g || h ) && f . push ( [ "mini" , b [ c ] ] ) ;
if ( 1 !== f . length ) { e = [ ] ; for ( c in f ) e [ c ] = f [ c ] [ 1 ] . hasOwnProperty ( "timestamp" ) ? f [ c ] [ 1 ] . timestamp : 0 ; g = e . indexOf ( Math . max . apply ( Math , e ) ) ; for ( c in f ) c != g && ( f [ c ] [ 0 ] == f [ g ] [ 0 ] ? ( e = cloneObject ( f [ g ] [ 1 ] ) , e . uid = f [ c ] [ 1 ] . uid , lsi . set ( "f_fiches" , e . uid , e ) ) : "fiche" == f [ g ] [ 0 ] ? ( e = cloneObject ( f [ c ] [ 1 ] ) , e . age = f [ g ] [ 1 ] . age , e . sexe = f [ g ] [ 1 ] . sexe , e . loc = f [ g ] [ 1 ] . loc , e . reltype = f [ g ] [ 1 ] . reltype , e . reltypeSpecial = f [ g ] [ 1 ] . reltypeSpecial , lsi . set ( "f_mini-fiches" , e . uid , e ) ) : ( e = cloneObject ( f [ c ] [ 1 ] ) , e . age = f [ g ] [ 1 ] . age , e . sexe = f [ g ] [ 1 ] . sexe , e . loc =
f [ g ] [ 1 ] . loc , e . reltype = f [ g ] [ 1 ] . reltype , e . reltypeSpecial = f [ g ] [ 1 ] . reltypeSpecial , "." == f [ g ] [ 1 ] . loc && ( e . loc = "0" ) , "9" == f [ g ] [ 1 ] . reltype && ( e . reltype = "10" , e . reltypeSpecial = "inconnu" ) , lsi . set ( "f_fiches" , e . uid , e ) ) ) } } console . groupEnd ( ) } ;
2016-10-22 11:31:21 +00:00
inputFacebookFiche . prototype . nav = function ( a ) { if ( ! ( a instanceof Element && a . getData ( "n" ) ) || isNaN ( a . getData ( "n" ) ) || "f_nav-fiche" != a . parentNode . id ) return ! 1 ; for ( var b = $$ ( '[data-sublink="facebook"] #f_nav-fiche > span.active' ) , c = 0 ; c < b . length ; c ++ ) b [ c ] . remClass ( "active" ) ; a . addClass ( "active" ) ; this . selected = parseInt ( a . getData ( "n" ) ) } ;
2016-11-28 11:47:06 +00:00
inputFacebookFiche . prototype . updateNavBar = function ( ) { var a = lsi [ "export" ] ( "f_fiches" ) ; this . nav _container . innerHTML = "" ; for ( var b = Object . keys ( a ) , c = 0 ; c < b . length ; c ++ ) { var d = parseInt ( b [ c ] ) ; 0 == d && ( this . nav _container . innerHTML += "<span>HISTORIQUE</span>" ) ; 20 > d && c < b . length - 1 && 20 <= b [ c + 1 ] ? this . nav _container . innerHTML += '<span data-n="' + d + '" class="lc">' + ( d % 20 + 1 ) + "</span> " : ( 20 == d && ( this . nav _container . innerHTML += '<br><span class="fc">MESSENGER </span>' ) , this . nav _container . innerHTML += '<span data-n="' +
d + '">' + ( d % 20 + 1 ) + "</span>" ) } for ( var e in a ) b = $ ( '[data-sublink="facebook"] #f_nav-fiche [data-n="' + a [ e ] . uid + '"]' ) , null != b && ( ! 0 === a [ e ] . valid ? b . addClass ( "done" ) : b . remClass ( "done" ) ) ; this . nav ( $ ( '[data-sublink="facebook"] #f_nav-fiche [data-n="' + this . selected + '"]' ) ) } ;
inputFacebookFiche . prototype . check = function ( a ) { if ( 2 > a . city . length || isNaN ( parseInt ( a . duration [ 0 ] ) ) && 0 < a . duration [ 0 ] . length || isNaN ( parseInt ( a . duration [ 1 ] ) ) && 0 < a . duration [ 1 ] . length || 0 == a . duration [ 0 ] . length + a . duration [ 1 ] . length || "." == a . job || "." == a . studies || "." == a . age || "." == a . interest || "." == a . relmark || "" == a . sexe || "" == a . famsit || "" == a . reltype || "" == a . loc || "" == a . context || "" == a . medsoc || "" == a . medrel ) return ! 1 ; for ( var b = 0 ; b < a . freq . length ; b ++ ) if ( "" == a . freq [ b ] ) return ! 1 ; for ( b = 0 ; b < a . irlfreq . length ; b ++ ) if ( "" == a . irlfreq [ b ] ) return ! 1 ;
for ( b = 0 ; b < a . connect . length ; b ++ ) if ( "" == a . connect [ b ] ) return ! 1 ; return "10" == a . reltype && 2 > a . reltypeSpecial . length || "11" == a . context && 2 > a . contextSpecial [ 0 ] . length || "12" == a . context && 2 > a . contextSpecial [ 1 ] . length || "13" == a . context && 2 > a . contextSpecial [ 2 ] . length ? ! 1 : ! 0 } ;
inputFacebookFiche . prototype . attach = function ( a ) { console . group ( "[facebook.fiche] attaching events" ) ; lsi . createDataset ( "f_fiches" ) ; this . storageToFields ( ) ; this . handler = a ; var b = this , b = this ; this . nav _container . addEventListener ( "click" , function ( a ) { b . nav ( a . target ) ; b . handler ( a . target ) } , ! 1 ) ; console . groupEnd ( ) } ;