materio-base-legacy/js/materio_user.min.js
2013-12-07 11:15:03 +01:00

517 lines
21 KiB
JavaScript
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// * date 2011/10/19 *
/**
* misc
*/
// ------ TRACE ------
function trace(s,o){
if(window.console && window.console.debug){
arguments.length === 2 ? window.console.debug(s,o) : window.console.debug(s);
}else if(window.console && window.console.log){
arguments.length === 2 ? window.console.log(s,o) : window.console.log(s);
}
};
// ------ LOADJSCSSFILE ------
function loadjscssfile(filename, filetype){
if (filetype=="js"){ //if filename is a external JavaScript file
var fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript")
fileref.setAttribute("src", filename)
}
else if (filetype=="css"){ //if filename is an external CSS file
var fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
}
if (typeof fileref!="undefined")
document.getElementsByTagName("head")[0].appendChild(fileref)
}
// ------ TIMEOUT
function Timeout(fn, interval) {
var id = setTimeout(fn, interval);
this.cleared = false;
this.clear = function () {
this.cleared = true;
clearTimeout(id);
};
}
// ------ HEXTORGB convert hex to rgb color ------
function HexToRGB(h){
if(h.charAt(0)=="#"){
var coul = h.substring(1,7);
var r = parseInt(coul.substring(0,2),16);
var g = parseInt(coul.substring(2,4),16);
var b = parseInt(coul.substring(4,6),16);
return 'rgb('+r+', '+g+', '+b+')';
}else{
return null;
}
}
// ------ PAIR check if number is pair of impair ------
function pair(n){return typeof n=='number'?(n%2==0?true:false):null;}
// ------ RANDOM ------
function random(n1,n2){
return arguments.length === 1 && typeof n1 === 'number'? Math.random()*n1 : ( arguments.length === 2 && typeof n1 === typeof n2 && typeof n1 === 'number' ? n1 + Math.random()*(n2-n1) : NaN );
}
function randomInt(n1,n2){
var rand = arguments.length === 1 && typeof n1 === 'number'? Math.random()*n1 : ( arguments.length === 2 && typeof n1 === typeof n2 && typeof n1 === 'number' ? n1 + Math.random()*(n2-n1) : NaN );
return parseInt(rand);
}
// ------ ROUNDED ------
function round(n,granularity){
if(arguments.length == 1){
n = Math.round(n);
}else{
granularity = granularity.toString();
granularity = granularity.replace(/./gi, 0);
granularity = granularity.replace(/^./gi, 1);
granularity = parseInt(granularity);
n = Math.round(n*granularity)/granularity;
}
return n;
}
// ------ FLOOR ------
function floor(n,granularity){
if(arguments.length == 1){
n = Math.floor(n);
}else{
granularity = granularity.toString();
granularity = granularity.replace(/./gi, 0);
granularity = granularity.replace(/^./gi, 1);
granularity = parseInt(granularity);
n = Math.floor(n*granularity)/granularity;
}
return n;
}
// ------ CEIL ------
function ceil(n,granularity){
if(arguments.length == 1){
n = Math.ceil(n);
}else{
granularity = granularity.toString();
granularity = granularity.replace(/./gi, 0);
granularity = granularity.replace(/^./gi, 1);
granularity = parseInt(granularity);
n = Math.ceil(n*granularity)/granularity;
}
return n;
}
/**
* String
*/
// ------ TRIM remove multiple, leading or trailing spaces ------
String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/gi,"").replace(/[ ]{2,}/gi," ").replace(/\n /,"\n");
}
// ------ remove all accents, for sort() by example ------
var Latinise={};Latinise.latin_map={"Á":"A","Ă":"A","Ắ":"A","Ặ":"A","Ằ":"A","Ẳ":"A","Ẵ":"A","Ǎ":"A","Â":"A","Ấ":"A","Ậ":"A","Ầ":"A","Ẩ":"A","Ẫ":"A","Ä":"A","Ǟ":"A","Ȧ":"A","Ǡ":"A","Ạ":"A","Ȁ":"A","À":"A","Ả":"A","Ȃ":"A","Ā":"A","Ą":"A","Å":"A","Ǻ":"A","Ḁ":"A","Ⱥ":"A","Ã":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ḃ":"B","Ḅ":"B","Ɓ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ć":"C","Č":"C","Ç":"C","Ḉ":"C","Ĉ":"C","Ċ":"C","Ƈ":"C","Ȼ":"C","Ď":"D","Ḑ":"D","Ḓ":"D","Ḋ":"D","Ḍ":"D","Ɗ":"D","Ḏ":"D","Dz":"D","Dž":"D","Đ":"D","Ƌ":"D","DZ":"DZ","DŽ":"DZ","É":"E","Ĕ":"E","Ě":"E","Ȩ":"E","Ḝ":"E","Ê":"E","Ế":"E","Ệ":"E","Ề":"E","Ể":"E","Ễ":"E","Ḙ":"E","Ë":"E","Ė":"E","Ẹ":"E","Ȅ":"E","È":"E","Ẻ":"E","Ȇ":"E","Ē":"E","Ḗ":"E","Ḕ":"E","Ę":"E","Ɇ":"E","Ẽ":"E","Ḛ":"E","":"ET","Ḟ":"F","Ƒ":"F","Ǵ":"G","Ğ":"G","Ǧ":"G","Ģ":"G","Ĝ":"G","Ġ":"G","Ɠ":"G","Ḡ":"G","Ǥ":"G","Ḫ":"H","Ȟ":"H","Ḩ":"H","Ĥ":"H","Ⱨ":"H","Ḧ":"H","Ḣ":"H","Ḥ":"H","Ħ":"H","Í":"I","Ĭ":"I","Ǐ":"I","Î":"I","Ï":"I","Ḯ":"I","İ":"I","Ị":"I","Ȉ":"I","Ì":"I","Ỉ":"I","Ȋ":"I","Ī":"I","Į":"I","Ɨ":"I","Ĩ":"I","Ḭ":"I","Ꝺ":"D","Ꝼ":"F","Ᵹ":"G","Ꞃ":"R","Ꞅ":"S","Ꞇ":"T","Ꝭ":"IS","Ĵ":"J","Ɉ":"J","Ḱ":"K","Ǩ":"K","Ķ":"K","Ⱪ":"K","Ꝃ":"K","Ḳ":"K","Ƙ":"K","Ḵ":"K","Ꝁ":"K","Ꝅ":"K","Ĺ":"L","Ƚ":"L","Ľ":"L","Ļ":"L","Ḽ":"L","Ḷ":"L","Ḹ":"L","Ⱡ":"L","Ꝉ":"L","Ḻ":"L","Ŀ":"L","Ɫ":"L","Lj":"L","Ł":"L","LJ":"LJ","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ń":"N","Ň":"N","Ņ":"N","Ṋ":"N","Ṅ":"N","Ṇ":"N","Ǹ":"N","Ɲ":"N","Ṉ":"N","Ƞ":"N","Nj":"N","Ñ":"N","NJ":"NJ","Ó":"O","Ŏ":"O","Ǒ":"O","Ô":"O","Ố":"O","Ộ":"O","Ồ":"O","Ổ":"O","Ỗ":"O","Ö":"O","Ȫ":"O","Ȯ":"O","Ȱ":"O","Ọ":"O","Ő":"O","Ȍ":"O","Ò":"O","Ỏ":"O","Ơ":"O","Ớ":"O","Ợ":"O","Ờ":"O","Ở":"O","Ỡ":"O","Ȏ":"O","Ꝋ":"O","Ꝍ":"O","Ō":"O","Ṓ":"O","Ṑ":"O","Ɵ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Õ":"O","Ṍ":"O","Ṏ":"O","Ȭ":"O","Ƣ":"OI","Ꝏ":"OO","Ɛ":"E","Ɔ":"O","Ȣ":"OU","Ṕ":"P","Ṗ":"P","Ꝓ":"P","Ƥ":"P","Ꝕ":"P","Ᵽ":"P","Ꝑ":"P","Ꝙ":"Q","Ꝗ":"Q","Ŕ":"R","Ř":"R","Ŗ":"R","Ṙ":"R","Ṛ":"R","Ṝ":"R","Ȑ":"R","Ȓ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꜿ":"C","Ǝ":"E","Ś":"S","Ṥ":"S","Š":"S","Ṧ":"S","Ş":"S","Ŝ":"S","Ș":"S","Ṡ":"S","Ṣ":"S","Ṩ":"S","Ť":"T","Ţ":"T","Ṱ":"T","Ț":"T","Ⱦ":"T","Ṫ":"T","Ṭ":"T","Ƭ":"T","Ṯ":"T","Ʈ":"T","Ŧ":"T","Ɐ":"A","Ꞁ":"L","Ɯ":"M","Ʌ":"V","Ꜩ":"TZ","Ú":"U","Ŭ":"U","Ǔ":"U","Û":"U","Ṷ":"U","Ü":"U","Ǘ":"U","Ǚ":"U","Ǜ":"U","Ǖ":"U","Ṳ":"U","Ụ":"U","Ű":"U","Ȕ":"U","Ù":"U","Ủ":"U","Ư":"U","Ứ":"U","Ự":"U","Ừ":"U","Ử":"U","Ữ":"U","Ȗ":"U","Ū":"U","Ṻ":"U","Ų":"U","Ů":"U","Ũ":"U","Ṹ":"U","Ṵ":"U","Ꝟ":"V","Ṿ":"V","Ʋ":"V","Ṽ":"V","Ꝡ":"VY","Ẃ":"W","Ŵ":"W","Ẅ":"W","Ẇ":"W","Ẉ":"W","Ẁ":"W","Ⱳ":"W","Ẍ":"X","Ẋ":"X","Ý":"Y","Ŷ":"Y","Ÿ":"Y","Ẏ":"Y","Ỵ":"Y","Ỳ":"Y","Ƴ":"Y","Ỷ":"Y","Ỿ":"Y","Ȳ":"Y","Ɏ":"Y","Ỹ":"Y","Ź":"Z","Ž":"Z","Ẑ":"Z","Ⱬ":"Z","Ż":"Z","Ẓ":"Z","Ȥ":"Z","Ẕ":"Z","Ƶ":"Z","IJ":"IJ","Œ":"OE","ᴀ":"A","ᴁ":"AE","ʙ":"B","ᴃ":"B","":"C","ᴅ":"D","ᴇ":"E","ꜰ":"F","ɢ":"G","ʛ":"G","ʜ":"H","ɪ":"I","ʁ":"R","ᴊ":"J","ᴋ":"K","ʟ":"L","ᴌ":"L","ᴍ":"M","ɴ":"N","":"O","ɶ":"OE","ᴐ":"O","ᴕ":"OU","ᴘ":"P","ʀ":"R","ᴎ":"N","ᴙ":"R","":"S","ᴛ":"T","ⱻ":"E","ᴚ":"R","":"U","":"V","":"W","ʏ":"Y","":"Z","á":"a","ă":"a","ắ":"a","ặ":"a","ằ":"a","ẳ":"a","ẵ":"a","ǎ":"a","â":"a","ấ":"a","ậ":"a","ầ":"a","ẩ":"a","ẫ":"a","ä":"a","ǟ":"a","ȧ":"a","ǡ":"a","ạ":"a","ȁ":"a","à":"a","ả":"a","ȃ":"a","ā":"a","ą":"a","ᶏ":"a","ẚ":"a","å":"a","ǻ":"a","ḁ":"a","ⱥ":"a","ã":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ḃ":"b","ḅ":"b","ɓ":"b","ḇ":"b","ᵬ":"b","ᶀ":"b","ƀ":"b","ƃ":"b","ɵ":"o","ć":"c","č":"c","ç":"c","ḉ":"c","ĉ":"c","ɕ":"c","ċ":"c","ƈ":"c","ȼ":"c","ď":"d","ḑ":"d","ḓ":"d","ȡ":"d","ḋ":"d","ḍ":"d","ɗ":"d","ᶑ":"d","ḏ":"d","ᵭ":"d","ᶁ":"d","đ":"d","ɖ":"d","ƌ":"d","ı":"i","ȷ":"j","ɟ":"j","ʄ":"j","dz":"dz","dž":"dz","é":"e","ĕ":"e","ě":"e","ȩ":"e","ḝ":"e","ê":"e","ế":"e","ệ":"e","ề":"e","ể":"e","ễ":"e","ḙ":"e","ë":"e","ė":"e","ẹ":"e","ȅ":"e","è":"e","ẻ":"e","ȇ":"e","ē":"e","ḗ":"e","ḕ":"e","ⱸ":"e","ę":"e","ᶒ":"e","ɇ":"e","ẽ":"e","ḛ":"e","ꝫ":"et","ḟ":"f","ƒ":"f","ᵮ":"f","ᶂ":"f","ǵ":"g","ğ":"g","ǧ":"g","ģ":"g","ĝ":"g","ġ":"g","ɠ":"g","ḡ":"g","":"g","ǥ":"g","ḫ":"h","ȟ":"h","ḩ":"h","ĥ":"h","ⱨ":"h","ḧ":"h","ḣ":"h","ḥ":"h","ɦ":"h","ẖ":"h","ħ":"h","ƕ":"hv","í":"i","ĭ":"i","ǐ":"i","î":"i","ï":"i","ḯ":"i","ị":"i","ȉ":"i","ì":"i","ỉ":"i","ȋ":"i","ī":"i","į":"i","ᶖ":"i","ɨ":"i","ĩ":"i","ḭ":"i","ꝺ":"d","ꝼ":"f","ᵹ":"g","ꞃ":"r","ꞅ":"s","ꞇ":"t","ꝭ":"is","ǰ":"j","ĵ":"j","ʝ":"j","ɉ":"j","ḱ":"k","ǩ":"k","ķ":"k","ⱪ":"k","ꝃ":"k","ḳ":"k","ƙ":"k","ḵ":"k","ᶄ":"k","ꝁ":"k","ꝅ":"k","ĺ":"l","ƚ":"l","ɬ":"l","ľ":"l","ļ":"l","ḽ":"l","ȴ":"l","ḷ":"l","ḹ":"l","ⱡ":"l","ꝉ":"l","ḻ":"l","ŀ":"l","ɫ":"l","ᶅ":"l","ɭ":"l","ł":"l","lj":"lj","ſ":"s","ẜ":"s","ẛ":"s","":"s","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ᵯ":"m","ᶆ":"m","ń":"n","ň":"n","ņ":"n","ṋ":"n","ȵ":"n","ṅ":"n","ṇ":"n","ǹ":"n","ɲ":"n","ṉ":"n","ƞ":"n","ᵰ":"n","ᶇ":"n","ɳ":"n","ñ":"n","nj":"nj","ó":"o","ŏ":"o","ǒ":"o","ô":"o","ố":"o","ộ":"o","ồ":"o","ổ":"o","ỗ":"o","ö":"o","ȫ":"o","ȯ":"o","ȱ":"o","ọ":"o","ő":"o","ȍ":"o","ò":"o","ỏ":"o","ơ":"o","ớ":"o","ợ":"o","ờ":"o","ở":"o","ỡ":"o","ȏ":"o","ꝋ":"o","ꝍ":"o","ⱺ":"o","ō":"o","ṓ":"o","ṑ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","õ":"o","ṍ":"o","ṏ":"o","ȭ":"o","ƣ":"oi","ꝏ":"oo","ɛ":"e","ᶓ":"e","ɔ":"o","ᶗ":"o","ȣ":"ou","ṕ":"p","ṗ":"p","ꝓ":"p","ƥ":"p","ᵱ":"p","ᶈ":"p","ꝕ":"p","ᵽ":"p","ꝑ":"p","ꝙ":"q","ʠ":"q","ɋ":"q","ꝗ":"q","ŕ":"r","ř":"r","ŗ":"r","ṙ":"r","ṛ":"r","ṝ":"r","ȑ":"r","ɾ":"r","ᵳ":"r","ȓ":"r","ṟ":"r","ɼ":"r","ᵲ":"r","ᶉ":"r","ɍ":"r","ɽ":"r","ↄ":"c","ꜿ":"c","ɘ":"e","ɿ":"r","ś":"s","ṥ":"s","š":"s","ṧ":"s","ş":"s","ŝ":"s","ș":"s","ṡ":"s","ṣ":"s","ṩ":"s","ʂ":"s","ᵴ":"s","ᶊ":"s","ȿ":"s","ɡ":"g","":"o","ᴓ":"o","ᴝ":"u","ť":"t","ţ":"t","ṱ":"t","ț":"t","ȶ":"t","ẗ":"t","ⱦ":"t","ṫ":"t","ṭ":"t","ƭ":"t","ṯ":"t","ᵵ":"t","ƫ":"t","ʈ":"t","ŧ":"t","ᵺ":"th","ɐ":"a","ᴂ":"ae","ǝ":"e","ᵷ":"g","ɥ":"h","ʮ":"h","ʯ":"h","ᴉ":"i","ʞ":"k","ꞁ":"l","ɯ":"m","ɰ":"m","ᴔ":"oe","ɹ":"r","ɻ":"r","ɺ":"r","ⱹ":"r","ʇ":"t","ʌ":"v","ʍ":"w","ʎ":"y","ꜩ":"tz","ú":"u","ŭ":"u","ǔ":"u","û":"u","ṷ":"u","ü":"u","ǘ":"u","ǚ":"u","ǜ":"u","ǖ":"u","ṳ":"u","ụ":"u","ű":"u","ȕ":"u","ù":"u","ủ":"u","ư":"u","ứ":"u","ự":"u","ừ":"u","ử":"u","ữ":"u","ȗ":"u","ū":"u","ṻ":"u","ų":"u","ᶙ":"u","ů":"u","ũ":"u","ṹ":"u","ṵ":"u","ᵫ":"ue","":"um","ⱴ":"v","ꝟ":"v","ṿ":"v","ʋ":"v","":"v","ⱱ":"v","ṽ":"v","ꝡ":"vy","ẃ":"w","ŵ":"w","ẅ":"w","ẇ":"w","ẉ":"w","ẁ":"w","ⱳ":"w","ẘ":"w","ẍ":"x","ẋ":"x","ᶍ":"x","ý":"y","ŷ":"y","ÿ":"y","ẏ":"y","ỵ":"y","ỳ":"y","ƴ":"y","ỷ":"y","ỿ":"y","ȳ":"y","ẙ":"y","ɏ":"y","ỹ":"y","ź":"z","ž":"z","ẑ":"z","ʑ":"z","ⱬ":"z","ż":"z","ẓ":"z","ȥ":"z","ẕ":"z","ᵶ":"z","ᶎ":"z","ʐ":"z","ƶ":"z","ɀ":"z","ff":"ff","ffi":"ffi","ffl":"ffl","fi":"fi","fl":"fl","ij":"ij","œ":"oe","st":"st","ₐ":"a","ₑ":"e","ᵢ":"i","ⱼ":"j","ₒ":"o","ᵣ":"r","ᵤ":"u","ᵥ":"v","ₓ":"x"};
String.prototype.latinise=function(){return this.replace(/[^A-Za-z0-9\[\] ]/g,function(a){return Latinise.latin_map[a]||a})};
String.prototype.latinize=String.prototype.latinise;
String.prototype.isLatin=function(){return this==this.latinise()}
/**
* Array
*/
// ------ UNIQUE reduces duplicates ------
array_unique = function(ar){
var r = new Array();
o:for(var i = 0, n = ar.length; i < n; i++)
{
for(var x = 0, y = r.length; x < y; x++)
{
if(r[x]==ar[i])
{
continue o;
}
}
r[r.length] = ar[i];
}
return r;
};
// ------ SUBSTRACT substract two array ------
array_subtract = function(ara1,ara2) {
var aRes = new Array() ;
for (var i = ara1.length-1; i >= 0; i--)
if(array_contains(ara2,ara1[i]))
aRes.push(ara1[i]);
return aRes ;
}
/*
SHUFFLE Add a shuffle function to Array object prototype
author: Stephane Roucheray
src: http://sroucheray.org/blog/2009/11/array-sort-should-not-be-used-to-shuffle-an-array/
found 2011/09/08.
*/
array_shuffle = function(ar){
var i = ar.length, j, temp;
if ( i == 0 ) return;
while ( --i ) {
j = Math.floor( Math.random() * ( i + 1 ) );
temp = ar[i];
ar[i] = ar[j];
ar[j] = temp;
}
return ar;
};
// ------ CONTAINS ------
array_contains = function(ar, obj) {
var i = ar.length;
while (i--)
if (ar[i] === obj)
return true;
return false;
};
// ------ REMOVE ------
// /!\ Found on the Internet, not sure of efficiency.
// Array.prototype.remove = function(v) {
// var x, _i, _len, _results;
// _results = [];
// for (_i = 0, _len = this.length; _i < _len; _i++) {
// x = this[_i];
// if (x !== v) {
// _results.push(x);
// }
// }
// return _results;
// };
array_remove = function(ar){
var what, a= arguments, L= a.length, ax;
while(L && ar.length){
what= a[--L];
while((ax= ar.indexOf(what))!= -1){
ar.splice(ax, 1);
}
}
return ar;
};
// for IE
// if(!Array.prototype.indexOf){
// Array.prototype.indexOf= function(what, i){
// i= i || 0;
// var L= this.length;
// while(i< L){
// if(this[i]=== what) return i;
// ++i;
// }
// return -1;
// };
// }
array_indexOf = function(ar, what, i){
i= i || 0;
var L= ar.length;
while(i< L){
if(ar[i]=== what) return i;
++i;
}
return -1;
};
// ------ SUBSTRACT substract two array ------
function array_subtract(ara1,ara2) {
var aRes = new Array() ;
for (var i = ara1.length-1; i >= 0; i--)
if( !array_contains(ara1[i],ara2) )
aRes.push(ara1[i]);
return aRes ;
};
/**
* Objects
*
*/
// ------ OBJECTSIZE get the length of objects ------
function objectSize(o) {
var len = o.length ? --o.length : 0;
for (var k in o)
len++;
return len;
}
// Object.prototype.size = function () {
// // var len = this.length ? --this.length : -1; // POURQUOI NE FONCTIONNE PAS?
// var len = this.length ? --this.length : -2;
// for (var k in this)
// len++;
// return len;
// }
function objectIsEmpty(obj){
for (var prop in obj) {
if (obj.hasOwnProperty(prop))
return false;
}
return true;
};
// ------ OBJECTGETKEY get key of index ------
function objectGetKey(o,index){
var i = 0;
for (var k in o){
if (k === 'length' || !o.hasOwnProperty(k))
continue;
if(i == index)
return k;
i ++;
}
}
// Object.prototype.getKey = function(index){
// var i = 0;
// for (var key in this){
// if (key === 'length' || !this.hasOwnProperty(key))
// continue;
// if(i == index)
// return key;
// i ++;
// }
// }
// ------ OBJECTSORT sort object ------
function objectSort(o,value) {
var connection = new Array();
for (var i = objectSize(o) - 1; i >= 0; i--){
var k = objectGetKey(o,i);
for (var j = objectSize(o[k].wit) - 1; j >= 0; j--){
var k2 = objectGetKey(o[k].wit,j);
if (k2==value) {
var the_wit = parseFloat(o[k].wit[k2]);
connection.push( {wit:the_wit,nid:k} );
};
};
};
connection.sort(function(a,b){
// return (a.wit - b.wit);//ascending
return (b.wit - a.wit);//descending
});
var o_sort = {};
for (var i = connection.length - 1; i >= 0; i--){
// o_sort[connection[i].wit+'-'+connection[i].nid] = o[connection[i].nid];
o_sort[connection[i].nid] = o[connection[i].nid];
};
return o_sort;
}
/**
* trigo
*/
// -------- getElementAngle ----------
// L'angle 0 correspond au nord (vers le haut)
// Exemple : getElementAngle(posElementX, posElementY, posSourisX, posSourisY)
// Ceci retournera l'angle de l'élément par rapport à la position de la souris
function getElementAngle(x1, y1, x2, y2) {
var adj = x2 - x1;
var opp = y2 - y1;
var angle = Math.abs(Math.atan(opp/adj) * 180/Math.PI);
if (adj > 0 && opp < 0 ) {
angle = 90 - angle;
}
else if (adj >= 0 && opp >= 0) {
angle += 90;
}
else if (adj < 0 && opp >= 0) {
angle = 180 + (90 - angle);
}
else {
angle += 270;
}
return angle;
}
// @codekit-prepend "gui.js"
// @koala-prepend "gui_ck_fw/gui.js"
(function($) {
MaterioUser = function(){
var _isAdhesion = $('body').is('.page-node-11187') || $('body').is('.page-node-11186');
function init() {
//trace('MaterioUser init compile test 3');
if(_isAdhesion)
initAdhesion();
};
function initAdhesion(){
// trace('initAdhesion');
$('.get-link a').bind('click', function(event) {
// trace('get-link click');
// do not show the registration form if already logged-in
if($('body').is('.logged-in'))
return true;
// else show the ajaxified registration form
event.preventDefault();
var $this = $(this),
href = $this.attr("href"),
destination = href.match('/\?destination=([^,]+)');
destination = "/" + destination[1].replace('%23', '#');
destination = destination.replace('//', '/');
// trace('destination', destination);
if($this.parents('.gratos').size()){
loadRegisterBlock(destination);
}else{
loadLoginAndRegisterBlock(destination);
}
return false;
});
};
function loadRegisterBlock (destination) {
// trace("loadRegisterBlock :: dest = "+destination);
$.getJSON(Drupal.settings.basePath+Drupal.settings.pathPrefix+'materio_user/registerblock', function(json){formLoaded(json, destination);});
}
function loadLoginAndRegisterBlock(destination){
// trace('loadRegistrationBlock :: dest = '+destination);
$.getJSON(Drupal.settings.basePath+Drupal.settings.pathPrefix+'materio_user/loginandregisterblock', function(json){formLoaded(json, destination);});
};
function formLoaded(json, destination){
//trace('formLoaded | json', json);
var $modal = $('<div>').addClass('modal-content').append(json.block);
var id,label, description;
$('input.form-text', $modal).each(function(i) {
id = $(this).attr('id');
label = $('label[for='+id+']').hide().text();
description = $(this).parent().find('.description').hide().text();
$(this).attr('placeholder', label).attr('title', description);
});
// $('.homepage-textfield', $modal).hide();
$('body').append($('<div>').addClass('modal-wrapper').append($modal));
$('.modal-wrapper').bind('click', function(event) {
$(this).remove();
});
$('.modal-content').bind('click', function(event) {
event.stopPropagation();
});
// doesn't work
// Drupal.attachBehaviors('bodi>.modal-wrapper');
$.event.trigger('ajax-register-block-loaded');
$("#user-register-form #edit-submit, #user-register-form #edit-submit--2", $modal).click(function(event){
event.preventDefault();
$.ajax({
type: 'POST',
dataType:'json',
url: Drupal.settings.basePath+Drupal.settings.pathPrefix+"materio_user/register/submit",
data: $('#user-register-form', $modal).serialize(),
success: function(data) { onUserLoginRegisterSubmit($('#user-register-form'), data, destination);},
error: function() {trace('error');}
});
return false;
});
$("#user-login #edit-submit", $modal).click(function(event){
event.preventDefault();
$.ajax({
type: 'POST',
dataType:'json',
url: Drupal.settings.basePath+Drupal.settings.pathPrefix+"materio_user/login/submit",
data: $('#user-login', $modal).serialize(),
success: function(data){ onUserLoginRegisterSubmit($('#user-login'), data, destination); },
error: function() { trace('error'); }
});
return false;
});
// google analytics
// $.event.trigger({
// type : "record-stat",
// categorie : 'Search',
// action : keys,
// label : 'filters : '+ stringTypes.join(' ,'),
// value : json.count
// });
};
function onUserLoginRegisterSubmit($form, data, destination){
cleanModalErrors();
if(data.errors != null){
for(field in data.errors){
$('input[name='+field+']', $form).addClass('error');
$form.prepend($('<div>').addClass('message-error').html(data.errors[field]));
}
}else{
// trace('destination = '+destination);
window.location.pathname = destination;
}
};
function cleanModalErrors() {
$('.message-error', '.modal-content').remove();
$('input', '.modal-content').removeClass('error');
}
init();
};
$(document).ready(function() {
var materiouser = new MaterioUser();
});
})(jQuery);