
function insertMedia()
{
for( var k = 0, l = arguments.length; k < l; k++ )
{
document.write( arguments[k] );
}
}
var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();
var mf = function(id)
{
if( mf.DEBUG && ! document.getElementById(id) ) alert(id + " id does not exist.");
return document.getElementById(id);
};
mf.version = "0.7.2";
mf.Safari = navigator.userAgent.toLowerCase().indexOf('safari') + 1;
mf.Firefox = navigator.userAgent.toLowerCase().indexOf('firefox') + 1;
mf.Chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
mf.IE = document.all?true:false;
mf.IE7LTE = (navigator.appVersion.indexOf("MSIE 5.")>-1) || (navigator.appVersion.indexOf("MSIE 6.")>-1) || (navigator.appVersion.indexOf("MSIE 7.")>-1);
mf.IE8LTE = mf.IE7LTE || (navigator.appVersion.indexOf("MSIE 8.")>-1);
mf.HTML5 = function()
{
var canvas = document.createElement('canvas');
if (!canvas || !canvas.getContext) return false;
return true;
}
mf.init = function()
{
mf.Infos.BrowserDetect.init();
};
mf.getAttribute = function(o, attr_name)
{
if( o.getAttribute(	attr_name ) != null )
return o.getAttribute(	attr_name );
else if(o.parentNode)
return mf.getAttribute( o.parentNode, attr_name );
else
return false;
};
elements = function(id)
{
return document.getElementById(id);
};
val = function(id)
{
return document.getElementById(id).value;
};
fill = function(id, content)
{
elements(id).innerHTML = content;
};
trim = function(someString)
{
if(typeof(someString)=="undefined") return "";
var str = '';
if( typeof(someString.replace) == "function" )
str = someString.replace(/^\s+/g,'');
else
return someString;
if( typeof(str.replace) == "function" )
str = str.replace(/\s+$/g,'');
return str;
};
getMovie = function(movieName)
{
if( navigator.appName.indexOf ("Microsoft") != -1 )
{return window[movieName];}
else
{return window.document[movieName];}
};
isset = function( variable )
{
return( typeof($variable) != "undefined" );
};
exists = function( maVar )
{
return ( ( typeof maVar != "undefined" ) && ( maVar != null ) ) ? true:false;
};
in_array = function( needle, stack )
{
for(var k = 0; k < stack.length; k++)
{
if( stack[k] == needle ) return true;
}
return false;
};
is_element = function(o)
{
if( !o ) return false;
if( o.nodeType != 1 ) return false;
if(trim(o.tagName) == "" ) return false; // IE SA MERE
return true;
};
is_array = function(o){return(typeof(o) == 'object');}
is_object = function(o){return(typeof(o) == 'object');}
is_string = function(o){return(typeof(o) == 'string');}
is_function = function(o){return(typeof(o) == 'function');}
is_undefined = function(o){return(typeof(o) == 'undefined');}
array_keys = function(o)
{
var keys = [];
for( var k in o )
{
if( k == 'each' ) break;
keys.push(k);
}
return keys;
};
br2nl = function(str, nl)
{
if( !exists(nl) ) nl = "\r\n";
var parts = str.split('<br/>');
var out = parts.join(nl);
return out;
};
function print_r(arr,level)
{
if(!level) level = 0;
else if( level > 20 ) return "";
var cr = "\n";
var pad = "      ";
var dumped_text = "";
var level_padding = "";
for(var j=0;j<level+1;j++) level_padding += pad;
if( typeof(arr) == 'object' )
{
for(var item in arr)
{
var value = arr[item];
if(typeof(value) == 'object')
{
dumped_text += level_padding + "'" + item + "' ..." + cr;
dumped_text += print_r(value,level+1);
}
else
{
dumped_text += level_padding + "'" + item + "' => \"" + value + "\"" + cr;
}
}
}
else
{
dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
}
return dumped_text;
};
function print_rw(arr)
{
var str = print_r(arr);
var p = document.createElement('p');
p.innerHTML = str;
document.body.appendChild(p);
}
function clone(obj)
{
if(obj == null || typeof(obj) != 'object') return obj;
var temp = new obj.constructor();
for(var key in obj) temp[key] = clone(obj[key]);
return temp;
}
function str_replace(searches, replaces, str)
{
for(var i = 0; i < searches.length; i++)
{
str = str.split( searches[i] ).join( replaces[i] );
}
return str;
}
mf.Object = {};
mf.Object.Data = new Array();
mf.Object.Center = function(o, width, height)
{
var ow = exists(width) ? width : mf.Object.getWidth(o);
var oh = exists(height) ? height : mf.Object.getHeight(o);
var sw = mf.Screen.getVisibleW();
var sh = mf.Screen.getVisibleH();
var ol = mf.Screen.getLeft0() + ( sw - ow ) / 2;
var ot = 0;
if( oh > sh )
ot = mf.Screen.getTop0() + 20;
else
ot = mf.Screen.getTop0() + ( sh - oh ) / 2;
o.style.position = "absolute";
o.style.left = ol + "px";
o.style.top = ot + "px";
};
mf.Object.createElement = function(tagName, Attributs)
{
if( tagName.toUpperCase() == 'EMBED' ) return mf.Object.createTextElement(tagName, Attributs);
var TempElement = document.createElement(tagName);
if( exists(Attributs) )
{
for( name in Attributs )
{
if( Attributs[name] != '' ) TempElement.setAttribute(name,Attributs[name]);
}
}
return TempElement;
};
mf.Object.createTextElement = function(tagName, Attributs)
{
var output = '<' + tagName;
if( exists(Attributs) )
{
for( name in Attributs )
{
if( Attributs[name] != '' ) output += ' ' + name + '="' + Attributs[name] + '"';
}
}
output += '/>';
var Div = document.createElement('div');
Div.innerHTML = output;
return Div;
};
mf.Object.recursiveBlock = function(o)
{
o.style.display = "block";
if( o.hasChildNodes() )
{
var ChildNodes = o.childNodes;
for(var c=0;c<ChildNodes.length;c++)
{
if( ChildNodes.item(c).nodeType == 1 )
{
mf.Object.recursiveBlock(ChildNodes.item(c));
}
}
}
};
mf.Object.recursiveKillLinks = function(o)
{
if( o.href != '' )
o.onclick = "return false;";
if( o.hasChildNodes() )
{
var ChildNodes = o.childNodes;
for(var c=0;c<ChildNodes.length;c++)
{
if( ChildNodes.item(c).nodeType == 1 )
{
mf.Object.recursiveKillLinks(ChildNodes.item(c));
}
}
}
};
mf.Object.setFloat = function(o,float)
{
if(mf.IE){o.style.styleFloat = float;}
else{o.style.cssFloat = float;}
};
mf.Object.getFloat = function(o, rec)
{
if( mf.IE ){return o.style.styleFloat;}
else{return o.style.cssFloat;}
};
mf.Object.setClass = function(o,newClass)
{
o.className = newClass;
};
mf.Object.getTop = function(o)
{
if (exists(o.offsetParent)){return (o.offsetTop + mf.Object.getTop(o.offsetParent) );}
else{return (o.offsetTop);}
};
mf.Object.getLeft = function(o)
{
var Offset = 0;
var Float = mf.Object.getFloat(o);
if( Float )
{
var Offset = 0;
var Node = o;
while ( Node.previousSibling )
{
if( Node.previousSibling.rel != 'hidden' )
{
var TempWidth = mf.Object.getWidth( Node.previousSibling );
if( exists( TempWidth ) ){Offset += TempWidth}
}
Node = Node.previousSibling;
}
if (o.offsetParent){return (Offset + o.offsetLeft + mf.Object.getLeft(o.offsetParent) );}
else{return (Offset + o.offsetLeft);}
}
else
{
if (o.offsetParent){return (o.offsetLeft + mf.Object.getLeft(o.offsetParent) );}
else{return (o.offsetLeft);}
}
};
mf.Object.setPos = function(o, x, y)
{
o.left = x;
o.style.left = x + "px";
o.top = x;
o.style.top = x + "px";
};
mf.Object.getHTML = function(o)
{
if( !o.innerHTML || o.innerHTML == "" )
return '<img name="'+ o.name +'" src="' + o.src + '"/>';
else
return o.innerHTML;
};
mf.Object.setSizeByID = function(id, width, height, recursive, tagname)
{
mf.Object.setSize(elements(id), width, height, recursive, tagname);
};
mf.Object.setSize = function(o, width, height, recursive, tagname)
{
if( o.tagName == tagname || !tagname)
{
o.width = width;
o.height = height;
o.style.width = width + "px";
o.style.height = height + "px";
}
if( recursive && o.hasChildNodes() )
{
var ChildNodes = o.childNodes;
for(var c=0;c<ChildNodes.length;c++)
{
if( ChildNodes.item(c).nodeType == 1 )
{
mf.Object.setSize( ChildNodes.item(c), width, height, true, tagname);
}
}
}
};
mf.Object.getWidth = function(o)
{
return o.offsetWidth ? o.offsetWidth : o.clientWidth;
};
mf.Object.getHeight = function(o)
{
return o.offsetHeight ? o.offsetHeight : o.clientHeight;
};
mf.Object.getDynObject = function(o)
{
if( o.is_dyn == true )
{
return o;
}
else
{
return mf.Object.getDynObject(o.parentNode);
}
};
mf.Object.getVar = function(o, v)
{
if( exists( o.getAttribute(v) ) == true )
{
return o.getAttribute(v);
}
else if( exists( o.parentNode) )
{
return mf.Object.getVar(o.parentNode, v);
}
else
{
return false;
}
};
mf.Object.allowMoving = function(o)
{
var Top = mf.Object.getTop(o);
var Left = mf.Object.getLeft(o);
o.style.position = "absolute";
o.style.left = Left + "px";
o.style.top = Top + "px";
};
mf.Object.Overwrite = function(newNode, oldNode)
{
if( exists(oldNode.parentNode) )
{
var Parent = oldNode.parentNode;
Parent.insertBefore(newNode,oldNode);
var OldNode = Parent.removeChild(oldNode);
return OldNode;
}
return false;
};
mf.Object.insertAfter = function(newNode, oldNode)
{
if( exists(oldNode.parentNode) )
{
var Parent = oldNode.parentNode;
Parent.insertBefore(newNode,oldNode);
var OldNode = Parent.removeChild(oldNode);
Parent.insertBefore(oldNode,newNode);
return true;
}
return false;
};
mf.Object.allowTransparencyByID = function(id)
{
mf.Object.allowTransparency(elements(id));
};
mf.Object.allowTransparency = function(o, width)
{
if(!exists(o.transparancy) )
{
o.transparancy = true;
if( !o.style.width)
o.style.width = width?width:o.offsetWidth;
}
};
mf.Object.setAlphaByID = function(id, alpha )
{
mf.Object.setAlpha(elements(id), alpha);
};
mf.Object.setAlpha = function( o, alpha )
{
var opacity = alpha * 100;
o.alpha = alpha;
if( mf.IE )
{
o.style.MozOpacity = alpha;
o.style.KhtmlOpacity = alpha;
}
o.style.filter = "alpha(opacity="+opacity+")";
o.style.opacity = alpha;
};
mf.Object.meltEraseCallBack = function(){};
mf.Object.meltShowCallBack = function(){};
mf.Object.meltEraseCallBacks = new Array();
mf.Object.meltShowCallBacks = new Array();
mf.Object.meltAlphaStep = 0.1;
mf.Object.meltInterval = 30; // ms
mf.Object.meltErase = function( o, cb, it )
{
mf.Object.allowTransparency(o);
if( !exists(o.alpha) ) o.alpha = 1;
window.clearInterval( o.meltIdInterval );
if( typeof(cb) == "function" ) mf.Object.meltEraseCallBacks[o.id] = cb;
if( !exists(it) ) it = mf.Object.meltInterval;
o.meltIdInterval = setInterval('mf.Object.animateMeltErase( "'+o.id+'")', it);
};
mf.Object.animateMeltErase = function( ido )
{
o = elements( ido );
mf.Object.setAlpha(o, o.alpha - mf.Object.meltAlphaStep);
if( o.alpha <= 0 )
{
mf.Object.setAlpha(o, 0);
window.clearInterval( o.meltIdInterval );
if( exists(mf.Object.meltEraseCallBacks[ido]) )
mf.Object.meltEraseCallBacks[ido]();
else
mf.Object.meltEraseCallBack();
}
};
mf.Object.meltShow = function( o, cb, it, maxi )
{
mf.Object.allowTransparency(o);
if( !exists(o.alpha) ) o.alpha = 0;
window.clearInterval( o.meltIdInterval );
if( typeof(cb) == "function" ) mf.Object.meltShowCallBacks[o.id] = cb;
if( !exists(it) ) it = mf.Object.meltInterval;
if(!exists(maxi)) maxi = 1;
o.meltIdInterval = setInterval('mf.Object.animateMeltShow( "'+o.id+'", "'+maxi+'")', it);
};
mf.Object.animateMeltShow = function( ido, maxi )
{
o = elements( ido );
mf.Object.setAlpha(o, o.alpha + mf.Object.meltAlphaStep );
if( o.alpha >= maxi )
{
mf.Object.setAlpha(o, maxi);
window.clearInterval( o.meltIdInterval );
if( exists(mf.Object.meltShowCallBacks[ido]) )
mf.Object.meltShowCallBacks[ido]();
else
mf.Object.meltShowCallBack();
}
};
mf.Screen = {};
mf.Screen.ieNOTopera = document.all && navigator.userAgent.indexOf("Opera")==-1;
mf.Screen.ieHoffset_extra = document.all ? 15 : 0;
mf.Screen.IEcompattest = function()
{
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
};
mf.Screen.getLeft0 = function()
{
var dsocleft = document.all? mf.Screen.IEcompattest().scrollLeft : pageXOffset;
var dsoctop = document.all? mf.Screen.IEcompattest().scrollTop : pageYOffset;
var window_width = mf.Screen.ieNOTopera? mf.Screen.IEcompattest().clientWidth + mf.Screen.ieHoffset_extra : window.innerWidth + mf.Screen.ieHoffset_extra;
var window_height = mf.Screen.ieNOTopera? mf.Screen.IEcompattest().clientHeight : window.innerHeight;
if(document.all || elements)
{
return( parseInt(dsocleft) );
}
else if(document.layers)
{
return ( dsocleft);
}
};
mf.Screen.getTop0 = function()
{
var dsocleft=document.all? mf.Screen.IEcompattest().scrollLeft : pageXOffset;
var dsoctop=document.all? mf.Screen.IEcompattest().scrollTop : pageYOffset;
var window_width=mf.Screen.ieNOTopera? mf.Screen.IEcompattest().clientWidth + mf.Screen.ieHoffset_extra : window.innerWidth + mf.Screen.ieHoffset_extra;
var window_height=mf.Screen.ieNOTopera? mf.Screen.IEcompattest().clientHeight : window.innerHeight;
if (document.all||elements)
{
return ( parseInt(dsoctop) );
}
else if (document.layers)
{
return ( dsoctop );
}
};
mf.Screen.getPageW = function()
{
if (document.body)
{
return (document.body.clientWidth);
}
else
{
return (window.innerWidth);
}
};
mf.Screen.getPageH = function()
{
if (document.body)
{
return (document.body.clientHeight);
}
else
{
return (window.innerHeight);
}
};
mf.Screen.getVisibleW = function()
{
return document.documentElement.clientWidth;
};
mf.Screen.getVisibleH = function()
{
return document.documentElement.clientHeight;
};
mf.Utils = {};
mf.Utils.getMouseXY = function(e)
{
var tempX = 0;
var tempY = 0;
if (mf.IE)
{
tempX = event.clientX + mf.Screen.getLeft0();
tempY = event.clientY + mf.Screen.getTop0();
}
else
{
tempX = e.pageX;
tempY = e.pageY;
}
if (tempX < 0){tempX = 0;}
if (tempY < 0){tempY = 0;}
return Array(tempX, tempY);
};
mf.Utils.getCursorSelection = function()
{
if ( document.selection )
{
return ( document.selection.createRange().text );
}
else if ( document.getSelection )
{
return ( document.getSelection() );
}
return false;
};
mf.Utils.is_set = function( $entry )
{
if( typeof($entry) != "undefined" && $entry != null )
{
return true;
}
return false;
};
mf.Utils.AutoFillInput = {};
mf.Utils.AutoFillInput.Id = false;
mf.Utils.onMouseUpAutofill = function( evt )
{
var CurrentSelection = mf.Utils.getCursorSelection();
if(trim(CurrentSelection) != '')
elements(mf.Utils.AutoFillInput.Id).value = mf.Utils.getCursorSelection();
};
mf.Utils.setAutoFillInput = function( idinput )
{
mf.Utils.AutoFillInput.Id = idinput;
mf.Event.addEvent( document, "mouseup", mf.Utils.onMouseUpAutofill, false);
};
mf.Utils.changeInnerHTMLIdInterval = 0;
mf.Utils.changeInnerHtmlSwitchCond = function( bool, id, content1, content2 )
{
var oldObject = elements( id );
var parentObject = oldObject.parentNode;
var newObject = document.createElement('div');
if( bool ){newObject.innerHTML = content1;}
else{newObject.innerHTML = content2;}
try
{
parentObject.appendChild( newObject );
oldObject.style.display = "none";
return true;
}
catch(err)
{
}
};
mf.Event = {};
mf.Event.addEvent = function( obj, type, callback, prop)
{
if( type == 'scroll' )
{
if( mf.Firefox )obj.addEventListener('DOMMouseScroll', callback, prop);
else if( mf.IE ) obj.attachEvent("onmousewheel", callback );
else obj.addEventListener('mousewheel', callback, prop);
return;
}
if( mf.IE )
obj.attachEvent("on" + type, callback );
else
obj.addEventListener(type, callback, prop);
};
mf.Event.getScrollAmount = function(evt)
{
if( mf.IE ) return evt.wheelDelta ? -evt.wheelDelta / 40 : 0;
if( mf.Chrome ) return - evt.wheelDeltaY / 30;
return evt.detail || 0;
}
mf.Event.removeEvent = function( obj, type, callback, prop)
{
if( mf.IE )
obj.detachEvent("on" + type, callback );
else
obj.removeEventListener(type, callback, prop);
};
mf.Event.getEventElement = function(evt)
{
return evt.target || evt.srcElement;
};
mf.Event.addLoadEventOld = function(func)
{
var oldonload = window.onload;
if(typeof window.onload != 'function')
{
window.onload = func;
}
else
{
window.onload = function()
{
oldonload();
func();
};
}
};
mf.loadfunction = function(){};
mf.onload = function()
{
if (arguments.callee.done) return;
arguments.callee.done = true;
if (_timer) clearInterval(_timer);
mf.loadfunction();
}
var _timer = false;
mf.Event.addLoadEvent = function(func)
{
var oldonload = window.onload;
if(typeof window.onload != 'function')
{
window.onload = func;
}
else
{
window.onload = function()
{
oldonload();
func();
};
}
};
mf.Event.killEvent = function( evt )
{
mf.Event.stopPropagation(evt);
mf.Event.preventDefault(evt);
};
mf.Event.stopPropagation = function(evt)
{
if (evt.stopPropagation)
evt.stopPropagation();
else
evt.cancelBubble = true;
};
mf.Event.preventDefault = function(evt)
{
if (evt.preventDefault)
evt.preventDefault();
else
evt.returnValue = false;
};
mf.Event.TabEvaluables = new Array();
mf.Event.TabEvaluateSuccess = new Array();
mf.Event.IdIntervalInsert = 0;
mf.Event.setAfterLoad = function( evaluable )
{
mf.Event.TabEvaluables.push(evaluable);
mf.Event.TabEvaluateSuccess.push( false );
};
mf.Event.insertAfterLoad = function()
{
mf.Event.IdIntervalInsert = window.setInterval( "mf.Event.processInsert()", 100 );
};
mf.Event.processInsert = function()
{
var Errors = false;
for( var i = 0; i < mf.Event.TabEvaluables.length; i++ )
{
if(mf.Event.TabEvaluateSuccess[i] == false)
try
{
eval( mf.Event.TabEvaluables[i] );
mf.Event.TabEvaluateSuccess[i] = true;
}
catch( err )
{
alert( err );
Errors = true;
}
}
if( Errors == true )
{
window.clearInterval( mf.Event.IdIntervalInsert );
}
};
mf.Text = {};
mf.Text.removePx = function( input )
{
if( typeof( input ) == 'number' || typeof(input.substr) != 'function' )
{
return input;
}
else
{
if( input.substr( input.length - 2 ) == 'px' )
{
input = parseInt( input.substr( 0, input.length - 2 ) );
return input;
}
else
{
return input;
}
}
};
mf.Text.makeFlashDiv = function( url, width, height, id, quality, autoplay, loop, transparent, flashvars )
{
var FlashDivContent = '<div class="view-embed">'+mf.Text.makeFlashObject( url, width, height, id, quality, autoplay, loop, transparent, flashvars )+'<div class="content-media-flash"></object></div></div>';
return FlashDivContent;
};
mf.Text.makeSimpleFlashDiv = function( url, width, height, id, quality, autoplay, loop, transparent, flashvars )
{
var FlashDivContent = '<div class="content-media-flash">'+mf.Text.makeFlashObject( url, width, height, id, quality, autoplay, loop, transparent, flashvars )+'</div>';
return FlashDivContent;
};
mf.Text.makeFlashObjectOK = function( url, width, height, id, quality, autoplay, loop, transparent, flashvars )
{
var fWidth = (width && width != '0') ? width:'100%';
var fHeight = (height && height != '0') ? height:'100%';
var fQuality = quality ? quality:'best';
var fAutoplay = autoplay ? autoplay:'true';
var fLoop = loop ? loop:'true';
var fWmode = transparent ? 'transparent':'';
var FlashDivContent = ''
+'<object id="'+id+'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0"'
+' width="'+fWidth+'" height="'+fHeight+'">'
+'<param name="movie" value="'+url+'" />'
+'<param name="quality" value="'+fQuality+'" />'
+'<param name="play" value="' +fAutoplay+ '" />'
+'<param name="loop" value="' +fLoop+ '" />'
+'<param name="wmode" value="'+fWmode+'" />'
+'<param name="allowscriptaccess" value="always" />'
+'<embed src="'+url+'" type="application/x-shockwave-flash" pluginspage=""'
+' allowscriptaccess="always"'
+' quality="'+fQuality+'"'
+' width="'+fWidth+'" height="'+fHeight+'"'
+' wmode="transparent"'
+' name="'+id+'"'
+' play="'+fAutoplay+'"'
+' allowscriptaccess="always"'
+' loop="'+fLoop+'" name="'+id+'"';
if( flashvars && flashvars.length && typeof(flashvars.length) == 'number' )
{
FlashDivContent += ' flashvars="';
for( var fv = 0; fv < flashvars.length; fv++)
{
FlashDivContent += '&'+ flashvars[fv][0] + '=' + flashvars[fv][1];
}
FlashDivContent += '"';
}
FlashDivContent += '></embed></object>';
return FlashDivContent;
};
mf.Text.makeFlashEmbed = function( url, width, height, id, quality, autoplay, loop, transparent, flashvars )
{
var fWidth = (width && width != '0') ? width:'100%';
var fHeight = (height && height != '0') ? height:'100%';
var fQuality = quality ? quality:'best';
var fAutoplay = autoplay ? autoplay:'true';
var fLoop = loop ? loop:'true';
var fWmode = transparent ? 'transparent':'opaque';
var FlashObject = mf.Object.createElement('object', {'id':id, 'codebase':'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0','width':fWidth,'height':fHeight});
var FlashObjectHtml = '<object id="' + id + '" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="'+fWidth+'" height="' + fHeight + '">';
var FlashDivContent = ''
+'<param name="movie" value="'+url+'" />'
+'<param name="quality" value="'+fQuality+'" />'
+'<param name="play" value="' +fAutoplay+ '" />'
+'<param name="loop" value="' +fLoop+ '" />'
+'<param name="wmode" value="'+fWmode+'" />'
+'<embed src="'+url+'" type="application/x-shockwave-flash" pluginspage=""'
+ 'name="'+ id + '"'
+ 'id="id_' + id + '"'
+' quality="'+fQuality+'"'
+' width="'+fWidth+'" height="'+fHeight+'"'
+' wmode="transparent"'
+' allowscriptaccess="always"'
+' play="'+fAutoplay+'"'
+' loop="'+fLoop+'"';
if( flashvars && flashvars.length && typeof(flashvars.length) == 'number' )
{
FlashDivContent += ' flashvars="';
for( var fv = 0; fv < flashvars.length; fv++)
{
FlashDivContent += '&'+ flashvars[fv][0] + '=' + flashvars[fv][1];
}
FlashDivContent += '"';
}
FlashDivContent += '></embed>';
FlashObjectHtml += FlashDivContent + '</object>';
return FlashObjectHtml;
};
mf.Text.makeFlashObject = function( url, width, height, id, quality, autoplay, loop, transparent, flashvars )
{
var fWidth = (width && width != '0') ? width:'100%';
var fHeight = (height && height != '0') ? height:'100%';
var fQuality = quality ? quality:'best';
var fAutoplay = autoplay ? autoplay:'true';
var fLoop = loop ? loop:'true';
var fWmode = transparent ? 'transparent':'opaque';
var FlashDivContent = ''
+'<embed src="'+url+'" type="application/x-shockwave-flash" pluginspage=""'
+ 'name="'+ id + '"'
+ 'id="'+ id + '"'
+' quality="'+fQuality+'"'
+' width="'+fWidth+'" height="'+fHeight+'"'
+' wmode="transparent"'
+' allowscriptaccess="always"'
+' play="'+fAutoplay+'"'
+' loop="'+fLoop+'" name="'+id+'"';
if( flashvars && flashvars.length && typeof(flashvars.length) == 'number' )
{
FlashDivContent += ' flashvars="';
for( var fv = 0; fv < flashvars.length; fv++)
{
FlashDivContent += '&'+ flashvars[fv][0] + '=' + flashvars[fv][1];
}
FlashDivContent += '"';
}
FlashDivContent += '></embed>';
return FlashDivContent;
};
mf.Text.makeFlashObjectOT = function( url, width, height, id, quality, autoplay, loop, transparent, flashvars )
{
var fWidth = (width && width != '0') ? width:'100%';
var fHeight = (height && height != '0') ? height:'100%';
var fQuality = quality ? quality:'best';
var fAutoplay = autoplay ? autoplay:'true';
var fLoop = loop ? loop:'true';
var fWmode = transparent ? 'transparent':'opaque';
var FlashVars = '';
if( flashvars && flashvars.length && typeof(flashvars.length) == 'number' )
{
for( var fv = 0; fv < flashvars.length; fv++)
{
FlashVars += '&'+ flashvars[fv][0] + '=' + flashvars[fv][1];
}
}
var EmbedParams = {'src':url,'type':'application/x-shockwave-flash','pluginspage':'http://www.macromedia.com/go/getflashplayer','quality':fQuality,'width':fWidth,'height':fHeight,'wmode':fWmode,'play':fAutoplay,'loop':fLoop,'name':'embed_'+id,'flashvars':FlashVars,'id':'embed_'+id,'allowScriptAccess':'always'};
var Embed = mf.Object.createElement('embed', EmbedParams);
return(Embed);
};
mf.Text.makeQTObject = function( url, width, height, id, has_controller, autoplay, loop, pluginspage )
{
var fWidth = (width && width != '0') ? width:'100%';
var fHeight = (height && height != '0') ? height:'100%';
var fHasController = has_controller ? has_controller:'true';
var fIsAutoplay = autoplay ? autoplay:'true';
var fIsLoop = loop ? loop:'true';
var QTObject = mf.Object.createElement('object', {	'width':fWidth,
'height':fHeight,
'codebase':"http://www.apple.com/qtactivex/qtplugin.cab"});
QTObject.appendChild( mf.Object.createElement('param', {'name':'movie','value':url}) );
QTObject.appendChild( mf.Object.createElement('param', {'name':'controller','value':fHasController}) );
QTObject.appendChild( mf.Object.createElement('param', {'name':'autoplay','value':fIsAutoplay}) );
QTObject.appendChild( mf.Object.createElement('param', {'name':'loop','value':fIsLoop}) );
QTObject.appendChild( mf.Object.createElement('embed', {'src':url,
'type':"video/quicktime",
'pluginspage':pluginspage,
'width':fWidth,
'height':fHeight,
'play':fIsAutoplay,
'loop':fIsLoop,
'controller':fHasController
}) );
return QTObject;
};
mf.Text.makeVideoObject = function(width, height, controls, sources)
{
var video = document.createElement('video');
video.setAttribute('width', width);
video.setAttribute('height', height);
video.setAttribute('controls', controls);
video.setAttribute('autobuffer', '1');
for( var i = 0; i < sources.length; i++ )
{
var source = document.createElement('source');
source.setAttribute('src', sources[i]['src']);
source.setAttribute('type', sources[i]['type']);
video.appendChild( source );
}
return video;
}
mf.Text.makeRMDiv = function( url, width, height, controls, is_autoplay )
{
var fWidth = (width && width != '0') ? width:'100%';
var fHeight = (height && height != '0') ? height:'100%';
var fControlls = controls ? controls:'true';
var fIsAutoplay = is_autoplay ? is_autoplay:'true';
var RMObject = mf.Object.createElement('object', {	'classid':"clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA",
'width':fWidth,
'height':fHeight});
RMObject.appendChild( mf.Object.createElement('param', {'name':'src','value':url}) );
RMObject.appendChild( mf.Object.createElement('param', {'name':'controls','value':fControlls}) );
RMObject.appendChild( mf.Object.createElement('param', {'name':'autostart','value':fIsAutoplay}) );
RMObject.appendChild( mf.Object.createElement('embed', {'src':url,
'pluginspage':"http://real.com",
'type':"audio/x-pn-realaudio-plugin",
'width':fWidth,
'height':fHeight,
'autostart':fIsAutoplay,
'controls':fControlls}) );
return RMDivContent;
};
mf.Text.makeWMDiv = function( url, width, height, has_controller, is_autoplay, pluginspage )
{
var fWidth = (width && width != '0') ? width:'100%';
var fHeight = (height && height != '0') ? height:'100%';
var fHasController = has_controller ? has_controller:'true';
var fIsAutoplay = is_autoplay ? is_autoplay:'true';
var fPluginSpace = pluginspage ? pluginspage:'';
var WMObject = mf.Object.createElement('object', {	'ID':"MediaPlayer",
'CLASSID':"CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95",
'STANDBY':"Loading Windows Media Player components...",
'type':"application/x-oleobject",
'width':fWidth,
'height':fHeight});
WMObject.appendChild( mf.Object.createElement('param', {'name':'filename','value':url}) );
WMObject.appendChild( mf.Object.createElement('param', {'name':'autostart','value':fIsAutoplay}) );
WMObject.appendChild( mf.Object.createElement('param', {'name':'showcontrols','value':fHasController}) );
WMObject.appendChild( mf.Object.createElement('embed', {'src':url,
'type':"application/x-mplayer2",
'pluginspage':fPluginSpace,
'width':fWidth,
'height':fHeight,
'autostart':"true",
'showcontrols':fHasController}) );
return WMObject;
};
mf.Infos = {};
mf.BrowserName = '';
mf.OS = '';
mf.Infos.BrowserDetect = {
showBrowserInfos : function( divid, lang )
{
var aboutBrowserHtml = '';
aboutBrowserHtml += mf.Infos.BrowserDetect.browser + ' ' +  mf.Infos.BrowserDetect.version + ' / ' + mf.Infos.BrowserDetect.OS + '<br/>';
if( mf.Infos.BrowserDetect.isOld )
{
aboutBrowserHtml += this.makeDlSentence(lang);
}
else
{
aboutBrowserHtml += this.makeOKSentence(lang);
}
elements(divid).innerHTML = aboutBrowserHtml;
},
makeDlSentence : function( lang )
{
switch (lang)
{
case "fr":
return 'T&eacute;l&eacute;chargez la derni&egrave;re version : <a target="_blank" href="' + mf.Infos.BrowserDetect.browserDL + '">sur le site officiel de ' + BrowserDetect.browser + '</a>';
break;
default:
return 'Download last version : <a target="_blank" href="' + mf.Infos.BrowserDetect.browserDL + '">On the official ' + mf.Infos.BrowserDetect.browser + ' website</a>';
break;
}
},
makeOKSentence : function( lang )
{
switch (lang)
{
case "fr":
return 'Vous avez la derni&egrave;re version de ' + mf.Infos.BrowserDetect.browser;
break;
default:
return 'You have the last version of ' + mf.Infos.BrowserDetect.browser;
break;
}
},
dataBrowser: [
{string: navigator.userAgent, subString: "Chrome", identity: "Chrome"},
{string: navigator.userAgent, subString: "OmniWeb", versionSearch: "OmniWeb/", identity: "OmniWeb"},
{string: navigator.vendor,	  subString: "Apple",	identity: "Safari"},
{prop: window.opera, identity: "Opera" },
{string: navigator.vendor, subString: "iCab", identity: "iCab"},
{string: navigator.vendor, subString: "KDE", identity: "Konqueror"},
{string: navigator.vendor, subString: "Camino", identity: "Camino"},
{string: navigator.userAgent, subString: "Netscape", identity: "Netscape"},
{string: navigator.userAgent, subString: "Flock", identity: "Flock"},
{string: navigator.userAgent, subString: "Navigator", identity: "Netscape", versionSearch: "Navigator"
},
{string: navigator.userAgent, subString: "Firefox", identity: "Firefox"},
{string: navigator.userAgent, subString: "MSIE", identity: "Explorer", versionSearch: "MSIE"},
{string: navigator.userAgent, subString: "Gecko", identity: "Mozilla", versionSearch: "rv"},
{string: navigator.userAgent, subString: "Mozilla", identity: "Netscape", versionSearch: "Mozilla"}
],
dataOS : [
{string: navigator.platform, subString: "Win", identity: "Windows"},
{string: navigator.platform, subString: "Mac", identity: "Mac"},
{string: navigator.platform, subString: "Linux", identity: "Linux"}
],
dataCurrVersion : {
Chrome : 0.2,
OmniWeb : 5,
Konqueror: 3,
Firefox: 3,
Camino : 1,
Netscape: 9,
Explorer: 7,
Flock: 1.2
},
urlDownloads : {
Chrome :{ Windows:  { en : "http://www.google.com/chrome/index.html?hl=en&brand=CHMB&utm_campaign=fr&utm_source=fr-ha-emea-fr-sk&utm_medium=ha&utm_term=chrome",
fr : "http://www.google.com/chrome/index.html?hl=en&brand=CHMB&utm_campaign=fr&utm_source=fr-ha-emea-fr-sk&utm_medium=ha&utm_term=chrome"}
},
OmniWeb : { Mac: 	{ en : "http://www.omnigroup.com/applications/omniweb/download/",
fr : "http://www.omnigroup.com/applications/omniweb/download/"}
},
Konqueror: { Linux: { en : "http://www.kde.org/download/",
fr : "http://www.kde.org/download/"}
},
Firefox: { Windows: { en : "http://www.mozilla-europe.org/en/firefox/",
fr : "http://www.mozilla-europe.org/fr/firefox/"},
Mac: 	{ en : "http://www.mozilla-europe.org/en/firefox/",
fr : "http://www.mozilla-europe.org/fr/firefox/"}
},
Camino : { Mac: 	{ en : "http://caminobrowser.org/",
fr : "http://caminobrowser.org/"}
},
Netscape: { Windows:  { en : "http://isp.netscape.com/software/download2.jsp",
fr : "http://isp.netscape.com/software/download2.jsp"}
},
Explorer: { Windows:  { en : "http://www.microsoft.com/france/windows/downloads/ie/getitnow.Mspx",
fr : "http://www.microsoft.com/france/windows/downloads/ie/getitnow.Mspx"}
},
Flock: { Windows:  {  en : "http://flock.com",
fr : "http://flock.com"}
}
},
searchVersion: function (dataString)
{
var index = dataString.indexOf(this.versionSearchString);
if (index == -1) return;
return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
},
searchString: function (data)
{
for (var i = 0 ; i < data.length; i++)
{
var dataString = data[i].string;
var dataProp = data[i].prop;
this.versionSearchString = data[i].versionSearch || data[i].identity;
if (dataString)
{
if (dataString.indexOf(data[i].subString) != -1)
return data[i].identity;
}
else if (dataProp)
return data[i].identity;
}
},
init: function ()
{
this.language = "fr";
mf.BrowserName = this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version";
mf.OS = this.OS = this.searchString(this.dataOS) || "an unknown OS";
this.isOld = (this.version < this.dataCurrVersion[this.browser]) ? true:false;
}
};
mf.Infos.PluginList = false;
mf.Infos.PluginDetectInit = function()
{
var agt=navigator.userAgent.toLowerCase();
var ie  = (agt.indexOf("msie") != -1);
var ns  = (navigator.appName.indexOf("Netscape") != -1);
var win = ((agt.indexOf("win")!=-1) || (agt.indexOf("32bit")!=-1));
var mac = (agt.indexOf("mac")!=-1);
if (ie && win)
pluginlist = detectIE("Adobe.SVGCtl","SVG Viewer") + detectIE("SWCtl.SWCtl.1","Shockwave Director") + detectIE("ShockwaveFlash.ShockwaveFlash.1","Shockwave Flash") + detectIE("rmocx.RealPlayer G2 Control.1","RealPlayer") + detectIE("QuickTimeCheckObject.QuickTimeCheck.1","QuickTime") + detectIE("MediaPlayer.MediaPlayer.1","Windows Media Player") + detectIE("PDF.PdfCtrl.5","Acrobat Reader");
if(ns || !win)
{
nse = ""; for (var i=0;i<navigator.mimeTypes.length;i++) nse += navigator.mimeTypes[i].type.toLowerCase();
pluginlist = detectNS("image/svg-xml","SVG Viewer") + detectNS("application/x-director","Shockwave Director") + detectNS("application/x-shockwave-flash","Shockwave Flash") + detectNS("audio/x-pn-realaudio-plugin","RealPlayer") + detectNS("video/quicktime","QuickTime") + detectNS("application/x-mplayer2","Windows Media Player") + detectNS("application/pdf","Acrobat Reader");
}
function detectIE(ClassID,name) { result = false; document.write('<SCRIPT LANGUAGE=VBScript>\n on error resume next \n result = IsObject(CreateObject("' + ClassID + '"))</SCRIPT>\n'); if (result) return name+','; else return ''; };
function detectNS(ClassID,name) { n = ""; if (nse.indexOf(ClassID) != -1) if (navigator.mimeTypes[ClassID].enabledPlugin != null) n = name+","; return n; };
pluginlist += navigator.javaEnabled() ? "Java," : "";
if ( pluginlist && pluginlist.length > 0)
pluginlist = pluginlist.substring(0,pluginlist.length-1);
mf.Infos.PluginList = pluginlist;
};
mf.FLVPlayerID = 1;
mf.FLVPlayer = function(swiff, flv, width, height, outer_div_id, autoplay)
{
this.Swiff = swiff;
this.AnimWidth = width;
this.AnimHeight = height;
this.Flv = flv;
this.Autoplay = autoplay;
this.OuterDivID = outer_div_id;
var ControllerHeight = 25; this.ControllerHeight = ControllerHeight;
var Created = false; this.Created = Created;
_this = this;
mf.Event.addLoadEvent(function(){_this.init();});
function init()
{
this.PlayerID = "mondo_flv_player_" + mf.FLVPlayerID;
elements(this.OuterDivID).style.display = "block";
var FLVVars = new Array();
FLVVars.push(new Array('video', this.Flv));
FLVVars.push(new Array('autoplay', this.Autoplay));
var FlObj = mf.Text.makeFlashObjectOK( this.Swiff, width, height, this.PlayerID, "best", true, true, false, FLVVars );
elements(this.OuterDivID).innerHTML = FlObj;
if( mf.IE ) mf.ractivate();
this.Created = true;
mf.FLVPlayerID++;
}
this.init = init;
}
mf.Player = {};
mf.Player.TabPlayers = new Array();
mf.Player.CurrentPlayerID = 1;
mf.Player.SuperPlayer = function(swiff, flv, width, height)
{
this.Swiff = swiff;
this.AnimWidth = width;
this.AnimHeight = height;
this.Flv = flv;
var DynVideo = false; this.DynVideo = DynVideo;
var VideoShown = false; this.VideoShown = VideoShown;
var ControllerHeight = 25; this.ControllerHeight = ControllerHeight;
var OuterDivID = 'portfolio_item_video_outer';
this.OuterDivID = OuterDivID;
var ObjectID = 'portfolio_item_video_object';
this.ObjectID = ObjectID;
var VideoDivID = 'portfolio_item_video_div';
this.VideoDivID = VideoDivID;
var Created = false; this.Created = Created;
var CanvasClassName = 'mondovideo-content'; this.CanvasClassName = CanvasClassName;
var DynVideo = false; this.DynVideo = DynVideo;
var ID = false; this.ID = ID;
var displayCallBack = false; this.displayCallBack = displayCallBack;
var hideCallBack = false; this.hideCallBack = hideCallBack;
var IdIntervalPreload; this.IdIntervalPreload = IdIntervalPreload;
var Waiting = false; this.Waiting = Waiting;
this.ID = mf.Player.CurrentPlayerID;
mf.Player.CurrentPlayerID++;
mf.Player.TabPlayers[this.ID] = this;
function init()
{
if( !this.Created )
{
elements(this.OuterDivID).style.display = "block";
this.DynVideo = mf.Dyn.makeDynamicObject(elements(this.OuterDivID), 0, 0);
elements(this.DynVideo.staticCanvasId).style.display = "none";
this.Created = true;
}
}
this.init = init;
function showVideo(CallBack)
{
if( exists(CallBack) ){this.displayCallBack = CallBack;}
this.init();
if( !this.VideoShown )
{
this.DynVideo.style.display = "block";
DynCanvas = elements(this.DynVideo.dynCanvasId);
DynCanvas.className = this.CanvasClassName;
var ScreenWidth = mf.Screen.getVisibleW();
var ScreenHeight = mf.Screen.getVisibleH();
var CibleWidth = this.AnimWidth;
var CibleHeight = this.AnimHeight + this.ControllerHeight;
var xCible = ( ScreenWidth - CibleWidth ) / 2;
var yCible = mf.Screen.getTop0() + ( ScreenHeight - CibleHeight ) / 2;
mf.Object.setSize(this.DynVideo, 0, 0, false);
mf.Object.setPos(this.DynVideo,ScreenWidth / 2, mf.Screen.getTop0() + ScreenHeight + 100);
mf.Dyn.moveTo( this.DynVideo, xCible, yCible, false );
mf.Dyn.sizeTo( this.DynVideo, CibleWidth, CibleHeight, mf.Player.SuperPlayer.onAppear, this.ID );
this.VideoShown = true;
}
else
{
this.hideCallBack = CallBack;
getMovie(this.ObjectID).callStopMovie();
mf.Dyn.sizeTo(this.DynVideo, 0, 0, mf.Player.SuperPlayer.onDisAppear, this.ID);
var ScreenWidth = mf.Screen.getVisibleW();
var ScreenHeight = mf.Screen.getVisibleH();
var xCible = (ScreenWidth / 2);
var yCible = mf.Screen.getTop0() + ScreenHeight + 100;
mf.Dyn.moveTo(this.DynVideo, xCible, yCible, false );
this.VideoShown = false;
}
};
this.showVideo = showVideo;
};
mf.ractivate = function()
{
var fls = document.getElementsByTagName("object");
for (var a = 0; a < fls.length; a++){fls[a].outerHTML = fls[a].outerHTML;}
}
mf.Player.SuperPlayer.onAppear = function(playerID)
{
var objectid = mf.Player.TabPlayers[playerID].ObjectID;
var flv = mf.Player.TabPlayers[playerID].Flv;
if( mf.IE ) mf.ractivate(objectid);
getMovie(objectid).callPlayMovie(flv);
if( typeof(mf.Player.TabPlayers[playerID].displayCallBack) == "function" )
{
mf.Player.TabPlayers[playerID].displayCallBack();
}
};
mf.Player.SuperPlayer.onDisAppear = function(playerID)
{
var DynVideo = mf.Player.TabPlayers[playerID].DynVideo;
DynVideo.style.left = DynVideo.originalLeft + "px";
DynVideo.style.top = DynVideo.originalTop + "px";
DynVideo.style.display = "none";
DynCanvas = elements(DynVideo.dynCanvasId);
DynCanvas.className = '';
if( typeof(mf.Player.TabPlayers[playerID].hideCallBack) == "function" )
{
mf.Player.TabPlayers[playerID].hideCallBack();
}
};
mf.Dyn = {};
mf.Dyn.dragDropHandler = function()
{
this.currentID = 0;
this.tabDragObjects = new Array();
this.tabMovingObjects = new Array();
this.getFirstNamedTag = function( name )
{
var elements = document.getElementsByName(name);
return elements[0];
};
this.makeDraggableByDivClass = function(divClassName, btnTagName, btnClassName, dragcallback )
{
var Divs = document.getElementsByTagName('div');
var BtnTags = false;
var DynObjectsArray = new Array();
for( var d =0; d < Divs.length; d++)
{
if( Divs[d].className == divClassName)
{
if(exists(btnTagName))
{
BtnTags = Divs[d].getElementsByTagName(btnTagName);
for( var t =0; t < BtnTags.length; t++)
{
if( BtnTags[t].className == btnClassName )
{
var ObjTemp = this.makeDraggable( Divs[d], BtnTags[t].id, dragcallback );
ObjTemp.futureclass = Divs[d].className;
DynObjectsArray.push(ObjTemp);
break;
}
}
}
else
{
var ObjTemp = this.makeDraggable( Divs[d], false, dragcallback );
ObjTemp.futureclass = Divs[d].className;
DynObjectsArray.push(ObjTemp);
}
}
}
for( var t =0; t < DynObjectsArray.length; t++)
{
elements(DynObjectsArray[t].dynCanvasId).className = DynObjectsArray[t].futureclass;
}
return DynObjectsArray;
};
this.makeDraggable = function( staticObject, dragBtnID, dragcallback, setclass, dropCallBack, always_dyn )
{
var dynObject = mf.Dyn.makeDynamicObject(staticObject, false, false, false, false, always_dyn);
var DynObjectID = dynObject.getAttribute('id');
this.tabDragObjects.push(DynObjectID);
this.tabMovingObjects[DynObjectID] = false;
dynObject.style.zIndex = mf.Dyn.dragDropHandler.BASE_DEPTH + this.currentID;
if( exists(dragcallback)) dynObject.dragCallBack = dragcallback;
if( exists(dropCallBack)) dynObject.dropCallBack = dropCallBack;
if( exists(dragBtnID) && dragBtnID )
{
var Btn = elements( dragBtnID );
if( Btn )
{
Btn.style.cursor = "pointer";
mf.Event.addEvent( Btn, "mousedown", mf.Dyn.dragDropHandler.draggableObjectMouseDown, false);
}
}
else
{
mf.Event.addEvent( dynObject, "mousedown", mf.Dyn.dragDropHandler.draggableObjectMouseDown, false);
}
return dynObject;
};
};
mf.Dyn.dragDropHandler.SELECTED_OBJECT_DEPTH = 1000;
mf.Dyn.dragDropHandler.SELECTED_OBJECT_ALPHA = 0.8;
mf.Dyn.dragDropHandler.BASE_DEPTH = 500;
mf.Dyn.dragDropHandler.CURRENT_DRAG_OBJECT = false;
mf.Dyn.dragDropHandler.INTERVAL = 30;
mf.Dyn.dragDropHandler.EASE = 0.6;
mf.Dyn.dragDropHandler.DROP_ACTION_SWITCH = 0;
mf.Dyn.dragDropHandler.DROP_ACTION_REPLACE = 1;
mf.Dyn.dragDropHandler.DROP_ACTION_OVERLAY = 2;
mf.Dyn.dragDropHandler.DROP_ACTION_PUSH_HOR = 3;
mf.Dyn.dragDropHandler.DROP_ACTION_PUSH_VER = 4;
mf.Dyn.dragDropHandler.DROP_ACTION_INSERT_BEFORE = 5;
mf.Dyn.dragDropHandler.DROP_ACTION_INSERT_AFTER = 6;
mf.Dyn.dragDropHandler.DROP_ACTION_APPEND = 7;
mf.Dyn.dragDropHandler.moveHome = function( objID )
{
var obj = elements( objID );
var ease = mf.Dyn.dragDropHandler.EASE;
obj.left = obj.originalLeft + (Math.round(ease*(obj.left - obj.originalLeft) ));
obj.top = obj.originalTop + (Math.round(ease*(obj.top - obj.originalTop) ));
obj.style.left = obj.left + "px";
obj.style.top = obj.top + "px";
if( Math.abs( obj.left - obj.originalLeft ) <= (1/ease) && Math.abs(obj.top - obj.originalTop) <= Math.ceil( 1/ease ))
{
obj.left = obj.originalLeft;
obj.top = obj.originalTop;
obj.style.left = obj.left + "px";
obj.style.top = obj.top + "px";
obj.moving = false;
mf.Dyn.dragDropHandler.attachStatic(obj);
window.clearInterval( obj.IdInterval );
}
};
mf.Dyn.dragDropHandler.attachStatic = function(o)
{
if(o.attached) return;
o.attached = true;
o.style.position = "";
elements(o.staticCanvasId).appendChild( elements(o.dynCanvasId).removeChild(o) );
}
mf.Dyn.dragDropHandler.attachDynamic = function(o)
{
if( !o.attached ) return;
o.style.position = "absolute";
o.attached = false;
var staticCanvas = elements(o.staticCanvasId);
o.left = o.originalLeft = mf.Object.getLeft(staticCanvas);
o.top = o.originalTop = mf.Object.getTop(staticCanvas);
o.style.left = o.left+"px";
o.style.top = o.top+"px";
elements(o.dynCanvasId).appendChild( elements(o.staticCanvasId).removeChild(o) );
};
mf.Dyn.dragDropHandler.switchStaticCanvas = function(o,p)
{
var TempStaticCanvasId = o.staticCanvasId;
o.staticCanvasId = p.staticCanvasId;
p.staticCanvasId = TempStaticCanvasId;
var originalLeft = o.originalLeft;
var originalTop = o.originalTop;
o.originalLeft = p.originalLeft;
o.originalTop = p.originalTop;
p.originalLeft = originalLeft;
p.originalTop = originalTop;
var CurrentObjectHome = mf.Object.getHome(o);
mf.Object.setHomeByObject( o, p );
mf.Object.setHome( p, CurrentObjectHome );
};
mf.Dyn.dragDropHandler.draggableObjectMouseDown = function( Event )
{
var MousePosition = mf.Utils.getMouseXY(Event);
var MouseLeft = parseInt(MousePosition[0]);
var MousetTop = parseInt(MousePosition[1]);
if( mf.Dyn.dragDropHandler.CURRENT_DRAG_OBJECT )
mf.Dyn.dragDropHandler.CURRENT_DRAG_OBJECT.style.zIndex = mf.Dyn.dragDropHandler.CURRENT_DRAG_OBJECT.style.zIndex - 1;
var target = Event.target || Event.srcElement;
var obj = mf.Object.getDynObject(target);
if( typeof( obj.dragCallBack ) == "function" )
obj.dragCallBack(obj, MousePosition);
if( obj.moving == true )
{
mf.Event.removeEvent( document, "mousemove", mf.Dyn.dragDropHandler.draggableObjectMouseMove, false);
mf.Event.removeEvent( document, "mouseup", mf.Dyn.dragDropHandler.draggableObjectMouseUp, false);
window.clearInterval( obj.IdInterval );
}
else
{
mf.Dyn.dragDropHandler.attachDynamic(obj);
obj.style.top = obj.top + "px";
obj.style.left = obj.left + "px";
obj.style.width = obj.width + "px";
obj.style.height = obj.height + "px";
}
obj.style.zIndex = mf.Dyn.dragDropHandler.SELECTED_OBJECT_DEPTH;
mf.Object.setAlpha(  obj, mf.Dyn.dragDropHandler.SELECTED_OBJECT_ALPHA );
obj.dragX = MouseLeft - obj.left;
obj.dragY = MousetTop - obj.top;
mf.Dyn.dragDropHandler.CURRENT_DRAG_OBJECT = obj;
mf.Event.addEvent( document, "mousemove", mf.Dyn.dragDropHandler.draggableObjectMouseMove, false);
mf.Event.addEvent( document, "mouseup", mf.Dyn.dragDropHandler.draggableObjectMouseUp, false);
mf.Event.killEvent(Event);
if( obj.dragCallBack && typeof(obj.dragCallBack) == "function" ) obj.dragCallBack();
return false;
};
mf.Dyn.dragDropHandler.draggableObjectMouseMove = function( Event )
{
var MousePosition = mf.Utils.getMouseXY(Event);
var obj = mf.Dyn.dragDropHandler.CURRENT_DRAG_OBJECT;
obj.left = MousePosition[0] - obj.dragX;
obj.top = MousePosition[1] - obj.dragY;
obj.style.left =  obj.left + "px";
obj.style.top = obj.top + "px";
mf.Event.killEvent(Event);
if( !exists(obj.dropTargetIDs) ) return false;
var Hit = false;
var HitObjectID = '';
for( var d = 0; d < obj.dropTargetIDs.length; d++ )
{
if( obj.dropTargetIDs[d] == obj.id ) continue;
var dobj = elements( obj.dropTargetIDs[d] );
if( mf.Object.hitTestObject(obj, dobj) && Hit == false )
{
Hit = true;
HitObjectID = dobj.id;
mf.Object.setAlpha( dobj, 0.5 );
}
else
{
mf.Object.setAlpha( dobj, 1 );
}
}
mf.Object.setAlpha(obj, Hit ? 0.9 : 1 );
obj.HitObject = Hit ? HitObjectID : false;
};
mf.Dyn.dragDropHandler.draggableObjectMouseUp = function( Event )
{
var obj = mf.Dyn.dragDropHandler.CURRENT_DRAG_OBJECT;
mf.Object.setAlpha( obj, 1 );
if( obj.HitObject )
{
var HitObject = elements( obj.HitObject );
mf.Object.setAlpha( HitObject, 1 );
switch( obj.dropTargetActions[obj.HitObject])
{
case mf.Dyn.dragDropHandler.DROP_ACTION_SWITCH:
mf.Dyn.dragDropHandler.attachDynamic(HitObject);
mf.Dyn.dragDropHandler.switchStaticCanvas(HitObject,obj);
mf.Object.goHome(HitObject);
break;
case mf.Dyn.dragDropHandler.DROP_ACTION_INSERT_AFTER:
var staticCanvas = elements(obj.staticCanvasId).parentNode.removeChild(elements(obj.staticCanvasId));
HitObject.parentNode.parentNode.insertBefore( staticCanvas, HitObject.parentNode);
obj.originalLeft = mf.Object.getLeft( staticCanvas );
obj.originalTop = mf.Object.getTop( staticCanvas );
break;
case mf.Dyn.dragDropHandler.DROP_ACTION_APPEND:
var staticCanvas = elements(obj.staticCanvasId).parentNode.removeChild(elements(obj.staticCanvasId));
HitObject.appendChild( staticCanvas );
obj.originalLeft = mf.Object.getLeft( staticCanvas );
obj.originalTop = mf.Object.getTop( staticCanvas );
break;
}
if( typeof(obj.dropCallBacks[obj.HitObject]) == "function" )
{
obj.dropCallBacks[obj.HitObject](obj,HitObject);
}
}
if( typeof(obj.dropCallBack) == "function" )
{
var coords = mf.Utils.getMouseXY(Event);
obj.dropCallBack(obj, coords);
}
else
{
mf.Object.goHome(obj);
}
mf.Event.removeEvent( document, "mousemove", mf.Dyn.dragDropHandler.draggableObjectMouseMove, false);
mf.Event.removeEvent( document, "mouseup", mf.Dyn.dragDropHandler.draggableObjectMouseUp, false);
mf.Event.killEvent(Event);
};
mf.Dyn.moveCurrentID = 0;
mf.Dyn.EASE = 0.4;
mf.Dyn.IT = 40;
mf.Dyn.moveTo = function(dynamicObject, x, y, callback)
{
dynamicObject.baseLeft = x;
dynamicObject.baseTop = y;
mf.Dyn.dragDropHandler.attachDynamic(dynamicObject);
window.clearInterval( dynamicObject.moveInterval );
dynamicObject.moveInterval = window.setInterval( "mf.Dyn.animateMoveto('"+dynamicObject.id+"')", mf.Dyn.IT );
};
mf.Dyn.animateMoveto = function( objID )
{
var obj = elements( objID );
var ease = mf.Dyn.EASE;
obj.left = obj.baseLeft + (Math.round(ease*(obj.left - obj.baseLeft) ));
obj.top = obj.baseTop + (Math.round(ease*(obj.top - obj.baseTop) ));
obj.style.left = obj.left + "px";
obj.style.top = obj.top + "px";
if( Math.abs( obj.left - obj.baseLeft ) <= (1/ease) && Math.abs(obj.top - obj.baseTop) <= Math.ceil( 1/ease ))
{
obj.left = obj.baseLeft;
obj.top = obj.baseTop;
obj.style.left = obj.left + "px";
obj.style.top = obj.top + "px";
obj.moving = false;
window.clearInterval( obj.moveInterval );
}
};
mf.Dyn.sizeTo = function(o, w, h, callback, callbackparam)
{
o.resizeCallback = callback;
o.currwidth = mf.Object.getWidth(o);
o.currheight = mf.Object.getHeight(o);
o.basewidth = w;
o.baseheight = h;
o.callbackparam = callbackparam;
o.sizeInterval = window.setInterval( "mf.Dyn.animateSizeto('"+o.id+"')", mf.Dyn.IT );
};
mf.Dyn.animateSizeto = function( objID )
{
var obj = elements( objID );
var ease = mf.Dyn.EASE;
obj.currwidth = obj.basewidth + (Math.round(ease*(obj.currwidth - obj.basewidth) ));
obj.currheight = obj.baseheight + (Math.round(ease*(obj.currheight - obj.baseheight) ) );
obj.style.width = obj.currwidth + "px";
obj.style.height = obj.currheight + "px";
obj.width = obj.currwidth;
obj.height = obj.currheight;
if( Math.abs( obj.currwidth - obj.basewidth ) <= (1/ease) && Math.abs(obj.currheight - obj.baseheight) <= Math.ceil( 1/ease ))
{
obj.width = obj.basewidth;
obj.height = obj.baseheight;
obj.style.width = obj.basewidth + "px";
obj.style.height = obj.baseheight + "px";
obj.moving = false;
window.clearInterval( obj.sizeInterval );
if( typeof(obj.resizeCallback) == "function" ){obj.resizeCallback(obj.callbackparam);}
}
};
mf.Dyn.makeDynamicObject = function(staticObject, origWidth, origHeight, origLeft, origTop, always_dyn)
{
if( staticObject.parentNode && staticObject.parentNode.is_dyn ) return staticObject.parentNode;
var Top = mf.Object.getTop(staticObject);
var Left = mf.Object.getLeft(staticObject);
var Width = exists(origWidth) && origWidth ? origWidth : mf.Object.getWidth(staticObject);
var Height = exists(origHeight) && origHeight ? origWidth : mf.Object.getHeight(staticObject);
staticObject.style.left = "0px";
staticObject.style.top = "0px";
var DynObjectName = 'mondo_dyn_object_' + mf.Dyn.moveCurrentID;
var DynCanvasID = 'mondo_dyn_canvas_' + mf.Dyn.moveCurrentID;
var StaticCanvasID = 'mondo_static_canvas_' + mf.Dyn.moveCurrentID;
var dynObjectCanvas = document.createElement('div');
dynObjectCanvas.setAttribute('id', DynCanvasID );
document.body.appendChild( dynObjectCanvas );
var staticObjectCanvas = document.createElement('div');
staticObjectCanvas.setAttribute('id', StaticCanvasID );
staticObjectCanvas.className = 'mondo_static_canvas';
staticObject.parentNode.insertBefore(staticObjectCanvas, staticObject);
var dynObject = document.createElement('div');
dynObject.dynCanvasId = DynCanvasID;
dynObject.staticCanvasId = StaticCanvasID;
dynObject.name = DynObjectName;
dynObject.id = DynObjectName;
dynObject.originalWidth = Width;
dynObject.originalHeight = Height;
dynObject.originalLeft = Left;
dynObject.originalTop = Top;
dynObject.style.position = "absolute";
dynObject.left = Left;
dynObject.top = Top;
dynObject.width = Width;
dynObject.height = Height;
dynObject.style.width = Width + "px";
dynObject.style.height = Height + "px";
dynObject.style.left = Left + "px";
dynObject.style.top = Top + "px";
dynObject.is_dyn = true;
dynObject.attached = false;
dynObject.appendChild( staticObject.parentNode.removeChild(staticObject) );
if( exists(always_dyn) && always_dyn )
{
elements(dynObject.staticCanvasId).parentNode.removeChild( elements(dynObject.staticCanvasId) );
dynObject.staticCanvasId = false;
dynObject.always_dyn = true;
dynObjectCanvas.appendChild( dynObject );
}
else
{
dynObject.always_dyn = false;
staticObjectCanvas.appendChild( dynObject );
staticObjectCanvas.style.width = Width + "px";
staticObjectCanvas.style.height = Height + "px";
dynObject.style.left = "0px";
dynObject.style.top = "0px";
dynObject.style.position = "static";
dynObject.attached = true;
}
mf.Dyn.moveCurrentID++;
return dynObject;
};
mf.Dyn.destroyDynamicObject = function(o)
{
if( o.attached )
{
o = elements(o.staticCanvasId).removeChild(o);
}
else
{
o = elements(o.dynCanvasId).removeChild(o);
}
elements(o.dynCanvasId).parentNode.removeChild( elements(o.dynCanvasId) );
if( !o.always_dyn ) elements(o.staticCanvasId).parentNode.removeChild( elements(o.staticCanvasId) );
delete(o);
};
mf.Object.setHomeByObjectID = function( o, objID )
{
var obj = elements( objID );
mf.Object.setHomeByObject( o, obj );
};
mf.Object.setHomeByObject = function( o, obj )
{
o.baseLeft = mf.Object.getLeft(obj);
o.baseTop = mf.Object.getTop(obj);
};
mf.Object.getHome = function( o )
{
return new Array( o.baseLeft, o.baseTop );
};
mf.Object.setHome = function( o, newhome )
{
o.baseLeft = newhome[0];
o.baseTop = newhome[1];
};
mf.Object.goHome = function( o )
{
o.moving = true;
o.IdInterval = window.setInterval( "mf.Dyn.dragDropHandler.moveHome('"+o.id+"')", mf.Dyn.dragDropHandler.INTERVAL );
};
mf.Object.addDropTarget = function( source, target, action, callback )
{
if( target.id == source.id ) return false;
if( !source.dropTargetIDs ) source.dropTargetIDs = new Array();
source.dropTargetIDs.push(target.id);
mf.Object.setDropAction( source, target, action);
mf.Object.setDropCallBack(source, target, callback);
};
mf.Object.removeDropTarget = function( source, target )
{
if( target.id == source.id ) return false;
if( !source.dropTargetIDs ) return false;
for( var i = 0; i < source.dropTargetIDs.length; i++ )
{
if( source.dropTargetIDs[i] == target.id ) source.dropTargetIDs.splice(i,1);
}
if( typeof(source.dropTargetActions[target.id]) != "undefined") delete(source.dropTargetActions[target.id]);
if( typeof(source.dropCallBacks[target.id]) != "undefined") delete(source.dropCallBacks[target.id]);
};
mf.Object.setDragCallBack = function(o, func)
{
if( typeof(func) == "function" ) o.dragCallBack = func;
};
mf.Object.setDropCallBack = function(source, target, func)
{
if( !source.dropCallBacks )
source.dropCallBacks = new Array();
if( typeof(func) == "function" )
source.dropCallBacks[target.id] = func;
};
mf.Object.setDropAction = function( source, target, action)
{
if( !source.dropTargetActions ) source.dropTargetActions = new Array();
if( !action )
{
source.dropTargetActions[target.id] = mf.Dyn.dragDropHandler.DROP_ACTION_SWITCH;
}
else
{
source.dropTargetActions[target.id] = action;
}
};
mf.Object.hitTestObject = function( ob, obj )
{
function getOffset(o)
{
for(var r = {l: o.offsetLeft, t: o.offsetTop, r: o.offsetWidth, b: o.offsetHeight};
o = o.offsetParent; r.l += o.offsetLeft, r.t += o.offsetTop);
return r.r += r.l, r.b += r.t, r;
};
for(var b, s, r = [], a = getOffset(ob), j = isNaN(obj.length), i = (j ? obj = [obj] : obj).length; i;
b = getOffset(obj[--i]), (a.l == b.l || (a.l > b.l ? a.l <= b.r : b.l <= a.r)) && (a.t == b.t || (a.t > b.t ? a.t <= b.b : b.t <= a.b)) && (r[r.length] = obj[i]));
return j ? !!r.length : r;
};
mf.Object.hitTestObjectByID = function( o,  objID )
{
return mf.Object.hitTestObject(o, elements(objID));
};
mf.Dyn.scrollHandler = {};
mf.Dyn.scrollHandler.Existing = new Array();
mf.Dyn.scrollHandler.IdInterval = new Array();
mf.Dyn.scrollHandler.scrollStep = 5;
mf.Dyn.scrollHandler.scrollIt = 30;
mf.Dyn.makeScrollDiv = function( SupportDivId, ContentDivId, BtnUpId, BtnDoId, height, selectedItemId, centerSelected )
{
height = (height == null)? 200:height;
var Support = elements(SupportDivId);
var Content = elements(ContentDivId);
var BtnUp = elements(BtnUpId);
var BtnDo = elements(BtnDoId);
var BaseTop = 0;
if(selectedItemId && elements( selectedItemId ) )
{
var SelectedObject = elements( selectedItemId );
BaseTop = -SelectedObject.offsetTop;
if( centerSelected )
{
var Marge = Math.round((height - SelectedObject.offsetHeight) / 2);
BaseTop += Marge;
}
}
Support.style.position = "relative";
Support.style.overflow = "hidden";
Support.style.height = height + "px";
Content.style.position = "absolute";
Content.style.left = "0px";
Content.style.top = BaseTop + "px";
Content.topMax = 0;
Content.topMin = Support.offsetHeight - Content.offsetHeight;
if( in_array(SupportDivId, mf.Dyn.scrollHandler.Existing ) )
{
mf.Event.removeEvent( BtnUp, "mouseover", mf.Dyn.scrollHandler.scrollDo );
mf.Event.removeEvent( BtnUp, "mouseout", mf.Dyn.scrollHandler.stopScroll );
mf.Event.removeEvent( BtnDo, "mouseover", mf.Dyn.scrollHandler.scrollUp );
mf.Event.removeEvent( BtnDo, "mouseout", mf.Dyn.scrollHandler.stopScroll );
}
mf.Dyn.scrollHandler.Existing.push(SupportDivId);
BtnUp.setAttribute('scroll_div_id', ContentDivId );
mf.Event.addEvent( BtnUp, "mouseover", mf.Dyn.scrollHandler.scrollDo );
mf.Event.addEvent( BtnUp, "mouseout", mf.Dyn.scrollHandler.stopScroll );
BtnDo.setAttribute('scroll_div_id', ContentDivId );
mf.Event.addEvent( BtnDo, "mouseover", mf.Dyn.scrollHandler.scrollUp );
mf.Event.addEvent( BtnDo, "mouseout", mf.Dyn.scrollHandler.stopScroll );
};
mf.Dyn.scrollHandler.scrollUp = function(evt)
{
var target = mf.Event.getEventElement( evt );
var ScrollContent = mf.getAttribute(target, 'scroll_div_id');
var Step = - mf.Dyn.scrollHandler.scrollStep;
mf.Dyn.scrollHandler.IdInterval[ScrollContent] = setInterval( 'mf.Dyn.scrollHandler.animateScrollUp( "'+ScrollContent+ '", "'+Step+'" )', mf.Dyn.scrollHandler.scrollIt);
mf.Event.killEvent(evt);
};
mf.Dyn.scrollHandler.scrollDo = function(evt)
{
var target = mf.Event.getEventElement( evt );
var ScrollContent = mf.getAttribute(target, 'scroll_div_id');
var Step = mf.Dyn.scrollHandler.scrollStep;
mf.Dyn.scrollHandler.IdInterval[ScrollContent] = setInterval( 'mf.Dyn.scrollHandler.animateScrollDo( "'+ScrollContent+ '", "'+Step+'" )', mf.Dyn.scrollHandler.scrollIt);
mf.Event.killEvent(evt);
};
mf.Dyn.scrollHandler.stopScroll = function(evt)
{
var target = evt.target || evt.srcElement;
var ScrollContent = mf.getAttribute(target, 'scroll_div_id');
window.clearInterval( mf.Dyn.scrollHandler.IdInterval[ScrollContent] );
};
mf.Dyn.scrollHandler.animateScrollUp = function( id, step )
{
var target = elements(id);
step = parseInt( step );
var TargetTop = parseInt(mf.Text.removePx(target.style.top));
if( TargetTop > target.topMin)
target.style.top = ( TargetTop + step ) + "px";
else
target.style.top = target.topMin + "px";
};
mf.Dyn.scrollHandler.animateScrollDo = function( id, step )
{
var target = elements(id);
step = parseInt( step );
var TargetTop = parseInt(mf.Text.removePx(target.style.top));
if( TargetTop < target.topMax)
target.style.top = ( TargetTop + step ) + "px";
else
target.style.top = target.topMax + "px";
};
mf.Ease = {};
mf.Ease.easeAnimateId = 0;
mf.EaseIt = 30;
mf.Ease.TranslateStep = 40;
mf.Ease.MinStep = 10;
mf.Ease.easing = false;
mf.Ease.mondoEaseManagerClass = function()
{
var TabDesiredWidth = new Array();
this.TabDesiredWidth = TabDesiredWidth;
var TabCurrentWidth = new Array();
this.TabCurrentWidth = TabCurrentWidth;
var TabDesiredHeight = new Array();
this.TabDesiredHeight = TabDesiredHeight;
var TabCurrentHeight = new Array();
this.TabCurrentHeight = TabCurrentHeight;
var TabEtats = new Array();
this.TabEtats = TabEtats;
var TabWidths = new Array();
this.TabWidths = TabWidths;
var TabHeights = new Array();
this.TabHeights = TabHeights;
var TabDivIDs = new Array();
this.TabDivIDs = TabDivIDs;
var Processing = false;
this.Processing = Processing;
var OutFunction;
this.OutFunction = OutFunction;
var Mode = 'ease';
this.Mode = Mode;
function setEase( newease )
{
mf.Ease.mondoEaseManagerClass.coeffease = newease;
};
this.setEase = setEase;
function Register( iditem, opened, move, offset, clearHeight )
{
if( !exists( iditem ) ){return false;}
if( exists( opened ) )
{
this.TabEtats[iditem] = opened;
}
else
{
this.TabEtats[iditem] = true;
}
elements( iditem ).style.display = "block";
elements( iditem ).style.overflow = "hidden";
if( clearHeight ) elements( iditem ).style.height = '';
this.TabHeights[iditem] = elements( iditem ).offsetHeight;
this.TabWidths[iditem] = elements( iditem ).offsetWidth;
if( ( exists( move ) && move == true) )
{
if( this.TabEtats[iditem] == false )
{
elements( iditem ).style.height = this.TabHeights[iditem] + 'px';
this.TabEtats[iditem] = false;
}
else
{
elements( iditem ).style.height = '0px';
this.TabEtats[iditem] = false;
}
}
if( clearHeight && ( (opened && move) || (!opened && !move) ) )
{
elements( iditem ).style.height = '0px';
}
};
this.Register = Register;
function manageEase( divId, TabBtns, TabEtat )
{
for( var i = 0; i < TabEtat.length; i++ )
{
switch (TabBtns[i])
{
case divId:
if( TabEtat[i] == false )
{
TabEtat[i] = !TabEtat[i];
mondoEaseManager.EaseOpenClose( divId, false );
}
break;
default:
if( TabEtat[i] == true )
{
TabEtat[i] = !TabEtat[i];
mondoEaseManager.EaseOpenClose( TabBtns[i], false );
}
break;
}
}
};
this.manageEase = manageEase;
function EaseOpenClose( iditem, Sens, closeOffset, outFunction )
{
var minValue = 0;
if( exists( closeOffset ) )
{
minValue = parseInt(closeOffset);
}
if( !exists(iditem) )
{
return false;
}
if(! exists( this.TabEtats[iditem] ) )
{
this.Register( iditem, true, true );
}
if( exists( outFunction ) )
{
this.OutFunction = outFunction;
}
if( Sens )
{
if( this.TabEtats[iditem] == false)
{
this.launchEase( iditem , minValue, this.TabWidths[iditem], null, null );
TabEtats[iditem] = true;
}
else
{
this.launchEase( iditem , this.TabWidths[iditem], minValue, null, null );
this.TabEtats[iditem] = false;
}
}
else
{
if( this.TabEtats[iditem] == false)
{
this.launchEase( iditem , null, null, minValue, this.TabHeights[iditem] );
TabEtats[iditem] = true;
}
else
{
this.launchEase( iditem , null, null, this.TabHeights[iditem], minValue );
this.TabEtats[iditem] = false;
}
}
};
this.EaseOpenClose = EaseOpenClose;
function launchEase( divid, widthBase, widthCible, heightBase, heightCible, outFunction )
{
if( divid == null )
{return;}
if( exists( outFunction ) )
{
this.OutFunction = outFunction;
}
if( exists( widthCible ) )
{
widthCible = mf.Text.removePx( widthCible );
this.TabDesiredWidth[divid] = parseInt(widthCible);
if( !exists( this.TabCurrentWidth[divid] ) )
{
if( exists( widthBase ) )
{
widthBase = mf.Text.removePx( widthBase );
}
else
{
widthBase = elements( divid ).offsetWidth;
}
this.TabCurrentWidth[divid] = parseInt(widthBase);
}
}
if( exists( heightCible ) )
{
var TheHeightCible = mf.Text.removePx( heightCible );
this.TabDesiredHeight[divid] = parseInt(TheHeightCible);
if( !exists( this.TabCurrentHeight[divid] ) )
{
var TheHeightBase = elements( divid ).offsetHeight;
if( exists( heightBase ) )
{
TheHeightBase = mf.Text.removePx( heightBase );
}
TheHeightBase = mf.Text.removePx( TheHeightBase );
this.TabCurrentHeight[divid] = mf.Text.removePx( TheHeightBase );
}
}
if( this.TabDivIDs.length < 1 || (!in_array( divid, this.TabDivIDs )) )
{
this.TabDivIDs.push( divid );
}
if( mf.Ease.easing == false )
{
mf.Ease.easing = true;
if(this.Mode == 'ease')
{
mf.Ease.easeAnimateId = setInterval(this.animateEase, mf.EaseIt);
}
else
{
mf.Ease.easeAnimateId = setInterval(this.animateTranslate, mf.EaseIt);
}
}
};
this.launchEase = launchEase;
function animateEase()
{
var ie = '';
var nb = 0;
for( var iid = 0; iid < TabDivIDs.length; iid++ )
{
ie = TabDivIDs[iid];
if( exists( TabCurrentWidth[ie] ) && !isNaN(TabCurrentWidth[ie]) )
{
nb++;
var arrived = false;
var step = Math.round(  mf.Ease.mondoEaseManagerClass.coeffease * ( TabDesiredWidth[ie] - TabCurrentWidth[ie] ) );
if(step > 0 )
{
if( step < mf.Ease.MinStep ) step = mf.Ease.MinStep;
var newWidth = TabCurrentWidth[ie] + step;
elements(ie).style.width = newWidth + "px";
TabCurrentWidth[ie] = newWidth;
arrived = ( TabDesiredWidth[ie] - TabCurrentWidth[ie] < 0  );
}
else
{
if( step > -mf.Ease.MinStep ) step = -mf.Ease.MinStep;
var newWidth = TabCurrentWidth[ie] + step;
elements(ie).style.width = newWidth + "px";
TabCurrentWidth[ie] = newWidth;
arrived = ( TabDesiredWidth[ie] - TabCurrentWidth[ie] > 0  );
}
if( arrived  )
{
elements(ie).style.width = TabDesiredWidth[ie] + "px";
TabCurrentWidth[ie] = TabDesiredWidth[ie];
deleteEaseParams( iid, true );
}
}
if( exists( TabCurrentHeight[ie] ) )
{
nb++;
var arrived = false;
var step = Math.round(  mf.Ease.mondoEaseManagerClass.coeffease * ( TabDesiredHeight[ie] - TabCurrentHeight[ie] ) );
if(step > 0 )
{
if( step < mf.Ease.MinStep ) step = mf.Ease.MinStep;
var newHeight = TabCurrentHeight[ie] + step;
elements(ie).style.height = newHeight + "px";
TabCurrentHeight[ie] = newHeight;
arrived = ( TabDesiredHeight[ie] - TabCurrentHeight[ie] <= 0  );
}
else
{
if( step > -mf.Ease.MinStep ) step = -mf.Ease.MinStep;
var newHeight = TabCurrentHeight[ie] + step;
if( newHeight < 0 ) newHeight = 0; // IE....
elements(ie).style.height = newHeight + "px";
TabCurrentHeight[ie] = newHeight;
arrived = ( TabDesiredHeight[ie] - TabCurrentHeight[ie] >= 0  );
}
if( arrived )
{
elements(ie).style.height = TabDesiredHeight[ie] + "px";
TabCurrentHeight[ie] = TabDesiredHeight[ie];
deleteEaseParams( iid, true );
}
}
}
if(	nb < 1 )
{
if( exists( mondoEaseManager.OutFunction ) )
{
mondoEaseManager.OutFunction();
mondoEaseManager.OutFunction = null;
}
clearInterval( mf.Ease.easeAnimateId );
mf.Ease.easing = false;
}
};
this.animateEase = animateEase;
function animateTranslate()
{
var ie = '';
var nb = 0;
for( var iid = 0; iid < TabDivIDs.length; iid++ )
{
ie = TabDivIDs[iid];
if( exists( TabCurrentWidth[ie] ) )
{
nb++;
if( TabDesiredWidth[ie] > TabCurrentWidth[ie] )
{
var newWidth = TabCurrentWidth[ie] + mf.Ease.TranslateStep;
elements(ie).style.width = newWidth + "px";
TabCurrentWidth[ie] = newWidth;
if(newWidth >= TabDesiredWidth[ie])
{
elements(ie).style.width = TabDesiredWidth[ie] + "px";
TabCurrentWidth[ie] = TabDesiredWidth[ie];
deleteEaseParams( iid, true );
}
}
else
{
var newWidth = TabCurrentWidth[ie] - mf.Ease.TranslateStep;
elements(ie).style.width = newWidth + "px";
TabCurrentWidth[ie] = newWidth;
if(newWidth <= TabDesiredWidth[ie])
{
elements(ie).style.width = TabDesiredWidth[ie] + "px";
TabCurrentWidth[ie] = TabDesiredWidth[ie];
deleteEaseParams( iid, true );
}
}
}
if( exists( TabCurrentHeight[ie] ) )
{
nb++;
if( TabDesiredHeight[ie] > TabCurrentHeight[ie] )
{
var newHeight = TabCurrentHeight[ie] + mf.Ease.TranslateStep;
elements(ie).style.height = newHeight + "px";
TabCurrentHeight[ie] = newHeight;
if(newHeight >= TabDesiredHeight[ie])
{
elements(ie).style.height = TabDesiredHeight[ie] + "px";
TabCurrentHeight[ie] = TabDesiredHeight[ie];
deleteEaseParams( iid, true );
}
}
else
{
var newHeight = TabCurrentHeight[ie] - mf.Ease.TranslateStep;
elements(ie).style.height = newHeight + "px";
TabCurrentHeight[ie] = newHeight;
if(newHeight <= TabDesiredHeight[ie])
{
elements(ie).style.height = TabDesiredHeight[ie] + "px";
TabCurrentHeight[ie] = TabDesiredHeight[ie];
deleteEaseParams( iid, true );
}
}
}
}
if(	nb < 1 )
{
if( exists( mondoEaseManager.OutFunction ) )
{
mondoEaseManager.OutFunction();
mondoEaseManager.OutFunction = null;
}
clearInterval( mf.Ease.easeAnimateId );
mf.Ease.easing = false;
}
};
this.animateTranslate = animateTranslate;
function deleteEaseParams( id, hor )
{
var idtext = TabDivIDs[id];
TabDivIDs[id] = null;
if( hor == true )
{
TabCurrentWidth[idtext] = null;
TabDesiredWidth[idtext] = null;
}
else
{
TabCurrentHeight[idtext] = null;
TabDesiredHeight[idtext] = null;
}
};
this.deleteEaseParams = deleteEaseParams;
};
mf.Ease.mondoEaseManagerClass.coeffease = 0.2;
mf.Ease.mondoEaseManagerClass.ArrivedNegligence = Math.floor( 1 / 0.2 );
mf.Ease.AutoOpenCloseMenuInstances = [];
mf.Ease.AutoOpenCloseMenuClass = function()
{
this.index = mf.Ease.AutoOpenCloseMenuInstances.length;
mf.Ease.AutoOpenCloseMenuInstances[this.index] = this;
var EventType = 'mouseover';
this.EventType = EventType;
var EaseManager = mondoEaseManager;// new mf.Ease.mondoEaseManagerClass();
this.EaseManager = EaseManager;
var TabBtns = new Array();
this.TabBtns = TabBtns;
var TabEtat = new Array();
this.TabEtat = TabEtat;
var CurrentDiv = '';
this.CurrentDiv = CurrentDiv;
var Sens = false;
this.Sens = Sens;
function addDiv( divId, btnId, closeIt, opened )
{
this.EaseManager.Register( divId, opened, closeIt );
this.TabBtns.push(divId);
var State = closeIt ? false:true;
this.TabEtat.push(State);
if(!closeIt) this.CurrentDiv = divId;
var DivElement = elements(divId);
DivElement.style.overflow = 'hidden';
DivElement.EaseClassIndex = this.index;
if( this.EventType != 'none' )
{
if( typeof(btnId) == "string" )
{
btnId = new Array(btnId);
}
DivElement.style.cursor = 'pointer';
for( var b = 0; b < btnId.length; b++ )
{
var BtnElement = elements(btnId[b]);
BtnElement.setAttribute('divId', divId);
BtnElement.setAttribute('EaseClassIndex', this.index);
BtnElement.style.cursor = "pointer";
mf.Event.addEvent( BtnElement, this.EventType, mf.Ease.AutoOpenCloseMenuInstances[this.index].manageEase, false );
}
}
return this;
};
this.addDiv = addDiv;
function manageEase( evt, dont_act )
{
var divId;
var EventElement = false;
if(typeof(evt) == "string")
{
divId = evt;
EventElement = elements(evt);
this.EaseManager.Register( EventElement.getAttribute('divId'), false, false, false, true );
divId = EventElement.getAttribute('divId')
}
else
{
EventElement = mf.Event.getEventElement(evt);
divId = mf.Object.getVar(EventElement, 'divId');
}
var EaseClassIndex = mf.Object.getVar(EventElement, 'EaseClassIndex');
var AutoOpenCloseMenuInstance = mf.Ease.AutoOpenCloseMenuInstances[EaseClassIndex];
for( var i = 0; i < AutoOpenCloseMenuInstance.TabEtat.length; i++ )
{
if( AutoOpenCloseMenuInstance.TabBtns[i] == divId )
{
if( !AutoOpenCloseMenuInstance.TabEtat[i] )
{
AutoOpenCloseMenuInstance.TabEtat[i] = AutoOpenCloseMenuInstance.TabEtat[i] ? false:true;
AutoOpenCloseMenuInstance.EaseManager.EaseOpenClose( divId, mf.Ease.AutoOpenCloseMenuInstances.Sens );
}
}
else if( AutoOpenCloseMenuInstance.TabEtat[i] == true )
{
AutoOpenCloseMenuInstance.TabEtat[i] = AutoOpenCloseMenuInstance.TabEtat[i] ? false:true;
AutoOpenCloseMenuInstance.EaseManager.EaseOpenClose( AutoOpenCloseMenuInstance.TabBtns[i], mf.Ease.AutoOpenCloseMenuInstances.Sens );
}
}
AutoOpenCloseMenuInstance.CurrentDiv = divId;
return false;
};
this.manageEase = manageEase;
};
mf.mondoXmlClientClass = function()
{
var Kommunikator;
this.Kommunikator = Kommunikator;
var OutFunction;
this.OutFunction = OutFunction;
var AttributeArray;
this.AttributeArray = AttributeArray;
var xmlType = 'ezobject';
this.xmlType = xmlType;
var ImageAliases = new Array('original');
this.ImageAliases = ImageAliases;
var NoCache = true;
this.NoCache = NoCache;
var async = true;
this.async = async;
var LastStatus = false;
this.LastStatus = LastStatus;
var Result = false;
this.Result = Result;
var PersistentData = new Array();
this.PersistentData = PersistentData;
function get( req, nextfunc, xmlType )
{
this.LoadResult( req, nextfunc, false, xmlType );
};
this.get = get;
function post( req, nextfunc, xmlType, body )
{
this.LoadResult( req, nextfunc, false, xmlType, body );
};
this.post = post;
function LoadResult( req, nextfunc, attributeArray, xmlType, body, method, async )
{
if( exists(async) && async == false ) async = false;
else async = true;
if( exists(method) && method == "GET" ) method = "GET";
else method = "POST";
this.Kommunikator = null;
this.Kommunikator = mf.mondoXmlClientClass.getXMLHTTP();
if( typeof(nextfunc) == "function" ){ this.OutFunction = nextfunc };
if(exists(xmlType) ){this.xmlType = xmlType;}
if(exists(attributeArray) && attributeArray){this.AttributeArray	= attributeArray;}
else{this.AttributeArray = new Array();}
var _this = this;
this.Kommunikator.onreadystatechange = function(){_this.onkreadystatechange()};
if( this.NoCache == true )
{
var uniqString = Math.random();
if(req.lastIndexOf('?') == -1 ){req += "?";}
req += "&nocache=" + uniqString.toString();
}
this.Kommunikator.open(method, req , async);
this.Kommunikator.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
this.Kommunikator.send(body);
};
this.LoadResult = LoadResult;
function onkreadystatechange() // evt ?
{
if( this.Kommunikator.readyState == 4 )
{
this.LastStatus = this.Kommunikator.status;
if( this.Kommunikator.status == 200 )
{
this.processResponse();
}
else if( typeof(this.OutFunction) == "function" )
{
this.OutFunction(MONDOTOOLS_AJAX_FATAL_ERROR);
}
}
};
this.onkreadystatechange = onkreadystatechange;
function processResponse()
{
this.Result = false;
if( this.xmlType == 'ezobject' )
{
this.Result = mf.mondoXmlClientClass.processXmlResponse( this.Kommunikator.responseText, this.ImageAliases );
}
else if( this.xmlType == 'ezkeyword' )
{
this.Result = mf.mondoXmlClientClass.processXmlKeyword( this.Kommunikator.responseText );
}
else
{
this.Result = this.Kommunikator.responseText;
}
if( typeof(this.OutFunction) == "function" )
{
this.OutFunction(this.Result);
}
};
this.processResponse = processResponse;
function dispose()
{
this.Kommunikator = null;
this.Kommunikator = mf.mondoXmlClientClass.getXMLHTTP();
};
this.dispose = dispose;
};
mf.mondoXmlClientClass.getXMLHTTP = function()
{
var xhr=null;
if(window.XMLHttpRequest)
{
xhr = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e1)
{
xhr = null;
alert('Error creating xmlhttp');
}
}
}
else
{
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
}
return xhr;
};
mf.ajax = mf.mondoXmlClientClass;
mf.activatedRunOnceSources = new Array();
mf.activatedRunOnceScripts = new Array();
mf.activateScripts = function(div)
{
var AllScripts = div.getElementsByTagName("script");
for (var i=0; i<AllScripts.length; i++)
{
var s=AllScripts[i];
if( s.src && s.src != "" )
{
window.eval(mf.getFileContent(s.src));
}
else if( s.innerHTML != null )
{
window.eval(s.innerHTML);
}
}
};
mf.getFileContent = function(url)
{
var jack = mf.mondoXmlClientClass.getXMLHTTP();
jack.open("GET",url,false);
jack.send(null);
return jack.responseText;
};
var MONDOTOOLS_AJAX_FATAL_ERROR = 'Something that may not be....';
mf.mondoXmlClientClass.parseXml = function(xml)
{
var doc;
if (window.ActiveXObject)
{
doc = new ActiveXObject("Microsoft.XMLDOM");
doc.async = 'false';
doc.loadXML(xml);
}
else
{
var parser=new DOMParser();
doc = parser.parseFromString(xml,"text/xml");
}
return doc;
}
mf.mondoXmlClientClass.processXmlResponse = function(xml, ImageAliases)
{
var xmldoc;
if (window.ActiveXObject)
{
xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.async = 'false';
xmldoc.loadXML(xml);
}
else
{
var parser=new DOMParser();
xmldoc = parser.parseFromString(xml,"text/xml");
}
var tabResult = Array();
if( xmldoc.hasChildNodes() )
{
var allobjects = xmldoc.getElementsByTagName('object');
for(var o = 0; o < allobjects.length; o++)
{
tabResult[o] = Array();
var title = allobjects[o].getElementsByTagName('title');
tabResult[o]['title'] = title[0].firstChild.nodeValue;
var parent = allobjects[o].getElementsByTagName('parent');
if( exists( parent[0] ) )
tabResult[o]['parent'] = parent[0].firstChild.nodeValue;
else
tabResult[o]['parent'] = '';
var url = allobjects[o].getElementsByTagName('url');
tabResult[o]['url'] = url[0].firstChild.nodeValue;
var section_id = allobjects[o].getElementsByTagName('section_id');
tabResult[o]['section_id'] = section_id[0].firstChild.nodeValue;
var node_id = allobjects[o].getElementsByTagName('node_id');
tabResult[o]['node_id'] = node_id[0].firstChild.nodeValue;
var object_id = allobjects[o].getElementsByTagName('object_id');
tabResult[o]['object_id'] = object_id[0].firstChild.nodeValue;
var version = allobjects[o].getElementsByTagName('version');
tabResult[o]['version'] = version[0].firstChild.nodeValue;
var current_language = allobjects[o].getElementsByTagName('current_language');
tabResult[o]['current_language'] = current_language[0].firstChild.nodeValue;
var parent_node_id = allobjects[o].getElementsByTagName('parent_node_id');
tabResult[o]['parent_node_id'] = parent_node_id[0].firstChild.nodeValue;
var class_identifier = allobjects[o].getElementsByTagName('class_identifier');
tabResult[o]['class_identifier'] = class_identifier[0].firstChild.nodeValue;
var short_date = allobjects[o].getElementsByTagName('shortdate');
tabResult[o]['shortdate'] = short_date[0].firstChild.nodeValue;
var year = allobjects[o].getElementsByTagName('year');
tabResult[o]['year'] = year[0].firstChild.nodeValue;
var priority = allobjects[o].getElementsByTagName('priority');
tabResult[o]['priority'] = priority[0].firstChild.nodeValue;
var sort_field = allobjects[o].getElementsByTagName('sort_field');
tabResult[o]['sort_field'] = sort_field[0].firstChild.nodeValue;
var sort_order = allobjects[o].getElementsByTagName('sort_order');
tabResult[o]['sort_order'] = sort_order[0].firstChild.nodeValue;
var can_move = allobjects[o].getElementsByTagName('can_move');
tabResult[o]['can_move'] = can_move[0].firstChild.nodeValue;
var can_remove = allobjects[o].getElementsByTagName('can_remove');
tabResult[o]['can_remove'] = can_remove[0].firstChild.nodeValue;
var can_edit = allobjects[o].getElementsByTagName('can_edit');
tabResult[o]['can_edit'] = can_edit[0].firstChild.nodeValue;
var can_create = allobjects[o].getElementsByTagName('can_create');
if( can_create[0].firstChild )
{
tabResult[o]['can_create'] = can_create[0].firstChild.nodeValue;
}
else
{
tabResult[o]['can_create'] = "";
}
var can_translate = allobjects[o].getElementsByTagName('can_translate');
tabResult[o]['can_translate'] = (can_translate[0].firstChild.nodeValue == 'true') ? true : false;
var attributes = allobjects[o].getElementsByTagName('attribute');
tabResult[o]['attributes'] = Array();
for(var at=0; at < attributes.length; at++)
{
var key_temp = attributes[at].getElementsByTagName('name')[0].firstChild.nodeValue;
var valuetemp = attributes[at].getElementsByTagName('value')[0].firstChild;
tabResult[o]['attributes'][key_temp] = Array();
tabResult[o]['attributes'][key_temp]['type'] = attributes[at].getElementsByTagName('type')[0].firstChild.nodeValue;
tabResult[o]['attributes'][key_temp]['has_content'] = attributes[at].getElementsByTagName('has_content')[0].firstChild.nodeValue;
if(valuetemp)
{
if( ImageAliases.length > 0 && tabResult[o]['attributes'][key_temp]['type'] == 'ezimage' )
{
var Alias = '';
var nodetemp = attributes[at].getElementsByTagName('value');
tabResult[o]['attributes'][key_temp]['value'] = new Array();
for( var ia = 0; ia < ImageAliases.length; ia++ )
{
Alias = nodetemp[0].getElementsByTagName( ImageAliases[ia] );
var width = Alias[0].getElementsByTagName('width')[0].firstChild;
if( width != null )
{
width = width.nodeValue;
}
else
{
tabResult[o]['attributes'][key_temp]['value'] = new Array();
continue;
}
var height = Alias[0].getElementsByTagName('height')[0].firstChild;
if( height != null )
{
height = height.nodeValue;
}
var url = Alias[0].getElementsByTagName('url')[0].firstChild;
if( url != null )
{
url = url.nodeValue;
}
tabResult[o]['attributes'][key_temp]['value'][ImageAliases[ia]] = new Array(width, height, url);
}
}
else if( tabResult[o]['attributes'][key_temp]['type'] == 'ezselection' )
{
tabResult[o]['attributes'][key_temp]['value'] = valuetemp.nodeValue;
if( exists(attributes[at].getElementsByTagName('index')[0]) )
{
var indextemp = attributes[at].getElementsByTagName('index');
if(exists(indextemp[0])  && exists(indextemp[0].firstChild))
{
indextemp = indextemp[0].firstChild;
tabResult[o]['attributes'][key_temp]['index'] = indextemp.nodeValue;
}
}
}
else if( tabResult[o]['attributes'][key_temp]['type'] == 'ezvideoflv' )
{
tabResult[o]['attributes'][key_temp]['value'] = new Array();
var nodetemp = attributes[at].getElementsByTagName('value');
tabResult[o]['attributes'][key_temp]['value']['flv'] = nodetemp[0].getElementsByTagName( 'flv' )[0].firstChild.nodeValue;
tabResult[o]['attributes'][key_temp]['value']['width'] = nodetemp[0].getElementsByTagName( 'width' )[0].firstChild.nodeValue;
tabResult[o]['attributes'][key_temp]['value']['height'] = nodetemp[0].getElementsByTagName( 'height' )[0].firstChild.nodeValue;
tabResult[o]['attributes'][key_temp]['value']['preview'] = nodetemp[0].getElementsByTagName( 'preview' )[0].firstChild.nodeValue;
}
else
{
tabResult[o]['attributes'][key_temp]['value'] = valuetemp.nodeValue;
}
}
}
} // END FOR
}
return tabResult;
};
mf.mondoXmlClientClass.processXmlKeyword = function(xml)
{
var doc;
if (window.ActiveXObject)
{
doc = new ActiveXObject("Microsoft.XMLDOM");
doc.async = 'false';
doc.loadXML(xml);
}
else
{
var parser=new DOMParser();
doc = parser.parseFromString(xml,"text/xml");
}
var tabResult = Array();
if( doc.hasChildNodes() )
{
var allobjects = doc.getElementsByTagName('object');
for(var o = 0; o < allobjects.length; o++)
{
tabResult[o] = Array();
var objtitle = allobjects[o].getElementsByTagName('name');
tabResult[o]['name'] = objtitle[0].firstChild.nodeValue;
var objclass = allobjects[o].getElementsByTagName('class');
tabResult[o]['class'] = objclass[0].firstChild.nodeValue;
var objurl = allobjects[o].getElementsByTagName('url');
tabResult[o]['url'] = objurl[0].firstChild.nodeValue;
}
}
return tabResult;
};
mf.Customizer = function()
{
var spanClassName = 'custom';
this.spanClassName = spanClassName;
var divClassName = 'custom';
this.divClassName = divClassName;
var inputClassName = 'custom';
this.inputClassName = inputClassName;
function customizeElements()
{
var TagName = this.tagName?this.tagName:'select';
var SpanClass = this.spanClassName?this.spanClassName:'custom';
var inputs = document.getElementsByTagName(TagName);
var option;
var active;
for (var i=0;i<inputs.length;i++)
{
var InputParent = inputs[i].parentNode;
var Div = document.createElement('div');
mf.Object.setClass(Div,this.divClassName);
var Input = mf.Object.Overwrite(Div,inputs[i]);
var InputID = Input.id;
if( !InputID )
{
Input.id = 'input_' + mf.Customizer.GlobalCusomInputIDs;
mf.Customizer.GlobalCusomInputIDs++;
}
option = Input.getElementsByTagName('option');
active = " "; // blanc insécable.
if( exists(option[0]) && exists(option[0].childNodes[0]))
{
active = option[0].childNodes[0].nodeValue;
}
for(var j=0;j<option.length;j++)
{
if( option[j].selected )
{
if( exists(option[0].childNodes[0]))
{
active = option[j].childNodes[0].nodeValue;
}
}
}
spantext = document.createTextNode(active);
for(b = 0; b < option.length; b++)
{
if(option[b].selected == true)
{
if( exists(option[b].childNodes[0]) )
{
spantext = document.createTextNode(option[b].childNodes[0].nodeValue);
}
else
{
spantext = document.createTextNode(" ");
}
}
}
var Span = document.createElement('span');
Span.id = "select" + Input.id;
mf.Object.setClass(Span,SpanClass);
mf.Object.setClass(Input,this.inputClassName);
Span.appendChild(spantext);
Div.appendChild(Input);
Div.appendChild(Span);
mf.Event.addEvent( Input, 'change', mf.Customizer.onSelectChange, true);
}
};
this.customizeElements = customizeElements;
};
mf.Customizer.GlobalCusomInputIDs = 0;
mf.Customizer.onSelectChange = function(evt)
{
var Select = mf.Event.getEventElement(evt);
option = Select.getElementsByTagName("option");
for(d = 0; d < option.length; d++)
{
if(option[d].selected == true)
{
if( exists(option[d].childNodes[0]) )
elements("select" + Select.id).childNodes[0].nodeValue = option[d].childNodes[0].nodeValue;
else
elements("select" + Select.id).childNodes[0].nodeValue = " ";
}
}
mf.Event.killEvent( evt );
};
mf.Inputs = {};
mf.Inputs.InputClick = false;
mf.Inputs.InputID = '';
mf.Inputs.beforColor = '#AAA';
mf.Inputs.afterColor = '#000';
mf.Inputs.setDefaultInputValue = function( inpuID, defaultText)
{
mf.Inputs.InputID = inpuID;
elements(inpuID).value = defaultText;
elements(inpuID).style.color = mf.Inputs.beforColor;
mf.Event.addEvent( elements(inpuID), "click", mf.Inputs.onInputClick, false);
};
mf.Inputs.onInputClick = function()
{
if( !mf.Inputs.InputClick)
{
elements(mf.Inputs.InputID).value = '';
elements(mf.Inputs.InputID).style.color = mf.Inputs.afterColor;
mf.Inputs.InputClick = true;
}
};
mf.Inputs.data = {}
mf.Inputs.setDefaultValue = function( id, text, unactive_color, active_color )
{
if( !exists(text) ) text = 'Rechercher';
if( !exists(unactive_color) ) unactive_color = '#CCCCCC';
if( !exists(active_color) ) active_color = '#000000';
var data = new Array();
data['text'] = text;
data['unactive_color'] = unactive_color;
data['active_color'] = active_color;
mf.Inputs.data[id] = data;
var st = elements(id);
st.value = text;
st.style.color = unactive_color;
st.setAttribute('active', "0");
mf.Event.addEvent(st, 'focus', mf.Inputs.onFocus );
mf.Event.addEvent(st, 'blur', mf.Inputs.onBlur );
};
mf.Inputs.onFocus = function(evt)
{
var el = mf.Event.getEventElement(evt);
var id = el.getAttribute('id');
if( !exists( mf.Inputs.data[id] ) ) return;
if( el.getAttribute('active') != "0") return;
var data = mf.Inputs.data[id];
el.value = "";
el.style.color = data['active_color'];
};
mf.Inputs.onBlur = function(evt)
{
var st = mf.Event.getEventElement(evt);
var id = st.getAttribute('id');
if( !exists( mf.Inputs.data[id] ) ) return;
if( trim(st.value) != "")
{
st.setAttribute('active', "1");
return;
}
st.setAttribute('active', "0");
var data = mf.Inputs.data[id];
st.value = data['text'];
st.style.color = data['unactive_color'];
};
mf.Window = {};
mf.Window.setScroll = function(x,y)
{
window.scrollTo(x,y);
};
mf.Window.saveScroll = function()
{
window.scrollTo(x,y);
};
mf.Cookie = {};
mf.Cookie.setCookie = function(name, val)
{
var argv=EcrireCookie.arguments;
var argc=EcrireCookie.arguments.length;
var expires=(argc > 2) ? argv[2] : null;
var path=(argc > 3) ? argv[3] : null;
var domain=(argc > 4) ? argv[4] : null;
var secure=(argc > 5) ? argv[5] : false;
document.cookie=name+"="+escape(val)+((expires==null) ? "" : ("; expires="+expires.toGMTString()))+((path==null) ? "" : ("; path="+path))+((domain==null) ? "" : ("; domain="+domain))+((secure==true) ? "; secure" : "");
};
mf.DEBUG = false;
mf.Keyboard = {};
mf.Keyboard.getEvent = function(e)
{
if (mf.IE) return window.event;
return e;
}
mf.Keyboard.getEventKey = function(e)
{
if (mf.IE) return e.keyCode;
return e.which;
}
mf.Keyboard.Alpha = new Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
mf.Keyboard.getKey = function(e)
{
e = mf.Keyboard.getEvent(e);
return mf.Keyboard.getEventKey(e);
};
var getEventKey = mf.Keyboard.getKey;
mf.Keyboard.getChar = function(keyCode)
{
return String.fromCharCode(keyCode);
};
var DECIMAL_ENTER = 13;
mf.Keyboard.onStageKeyDown = function( e )
{
var e = mf.Keyboard.getEvent(e);
var pressedKey = mf.Keyboard.getEventKey(e);
var pressedCharacter = String.fromCharCode(pressedKey);
if(!in_array(pressedKey,mf.Keyboard.Downs))
{
mf.Keyboard.Downs.push(pressedKey);
}
else
{
clearInterval( mf.Keyboard.intervalClean );
mf.Keyboard.intervalClean = setInterval( mf.Keyboard.cleanDowns, 1000 );
return;
}
for( var i = 0; i < mf.Keyboard.listeners.length; i++ )
{
var ok = true;
for( var j = 0; j < mf.Keyboard.listeners[i].length; j++ )
{
if( !in_array( mf.Keyboard.listeners[i][j], mf.Keyboard.Downs) )
{
ok = false;
break;
}
}
if( ok )mf.Keyboard.callbacks[i]();
}
clearInterval( mf.Keyboard.intervalClean );
mf.Keyboard.intervalClean = setInterval( mf.Keyboard.cleanDowns, 1000 );
};
mf.Keyboard.cleanDowns = function()
{
mf.Keyboard.Downs = new Array();
clearInterval( mf.Keyboard.intervalClean );
}
mf.Keyboard.onStageKeyUp = function( e )
{
var e = mf.Keyboard.getEvent(e);
var pressedKey = mf.Keyboard.getEventKey(e);
var pressedCharacter = String.fromCharCode(pressedKey);
for( var i = 0; i < mf.Keyboard.Downs.length; i++ )
{
if( mf.Keyboard.Downs[i] == pressedKey )
{
mf.Keyboard.Downs.splice(i,1);
return;
}
}
};
mf.Keyboard.getKeyCode = function(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode;
if (charCode == 8) return "backspace"; //  backspace
if (charCode == 9) return "tab"; //  tab
if (charCode == 13) return "enter"; //  enter
if (charCode == 16) return "shift"; //  shift
if (charCode == 17) return "ctrl"; //  ctrl
if (charCode == 18) return "alt"; //  alt
if (charCode == 19) return "pause/break"; //  pause/break
if (charCode == 20) return "caps lock"; //  caps lock
if (charCode == 27) return "escape"; //  escape
if (charCode == 33) return "page up"; // page up, to avoid displaying alternate character and confusing people
if (charCode == 34) return "page down"; // page down
if (charCode == 35) return "end"; // end
if (charCode == 36) return "home"; // home
if (charCode == 37) return "left arrow"; // left arrow
if (charCode == 38) return "up arrow"; // up arrow
if (charCode == 39) return "right arrow"; // right arrow
if (charCode == 40) return "down arrow"; // down arrow
if (charCode == 45) return "insert"; // insert
if (charCode == 46) return "delete"; // delete
if (charCode == 91) return "left window"; // left window
if (charCode == 92) return "right window"; // right window
if (charCode == 93) return "select key"; // select key
if (charCode == 96) return "0"; // numpad 0
if (charCode == 97) return "1"; // numpad 1
if (charCode == 98) return "2"; // numpad 2
if (charCode == 99) return "3"; // numpad 3
if (charCode == 100) return "4"; // numpad 4
if (charCode == 101) return "5"; // numpad 5
if (charCode == 102) return "6"; // numpad 6
if (charCode == 103) return "7"; // numpad 7
if (charCode == 104) return "8"; // numpad 8
if (charCode == 105) return "9"; // numpad 9
if (charCode == 106) return "multiply"; // multiply
if (charCode == 107) return "add"; // add
if (charCode == 109) return "subtract"; // subtract
if (charCode == 110) return "decimal point"; // decimal point
if (charCode == 111) return "divide"; // divide
if (charCode == 112) return "F1"; // F1
if (charCode == 113) return "F2"; // F2
if (charCode == 114) return "F3"; // F3
if (charCode == 115) return "F4"; // F4
if (charCode == 116) return "F5"; // F5
if (charCode == 117) return "F6"; // F6
if (charCode == 118) return "F7"; // F7
if (charCode == 119) return "F8"; // F8
if (charCode == 120) return "F9"; // F9
if (charCode == 121) return "F10"; // F10
if (charCode == 122) return "F11"; // F11
if (charCode == 123) return "F12"; // F12
if (charCode == 144) return "num lock"; // num lock
if (charCode == 145) return "scroll lock"; // scroll lock
if (charCode == 186) return ";"; // semi-colon
if (charCode == 187) return "="; // equal-sign
if (charCode == 188) return ","; // comma
if (charCode == 189) return "-"; // dash
if (charCode == 190) return "."; // period
if (charCode == 191) return "/"; // forward slash
if (charCode == 192) return "`"; // grave accent
if (charCode == 219) return "["; // open bracket
if (charCode == 220) return "\\"; // back slash
if (charCode == 221) return "]"; // close bracket
if (charCode == 222) return "'"; // single quote
return String.fromCharCode(charCode);
}
mf.Keyboard.hasListener = false;
mf.Keyboard.addListener = function(codes, func)
{
if( !mf.Keyboard.hasListener ) mf.Keyboard.setupListeners();
if( typeof(func) != 'function' ) return;
mf.Keyboard.listeners.push( codes );
mf.Keyboard.callbacks.push( func );
}
mf.Keyboard.setupListeners = function()
{
mf.Event.addEvent( document, 'keydown', mf.Keyboard.onStageKeyDown, false);
mf.Event.addEvent( document, 'keyup', mf.Keyboard.onStageKeyUp, false);
mf.Keyboard.hasListener = true;
mf.Keyboard.listeners = new Array();
mf.Keyboard.callbacks = new Array();
mf.Keyboard.DECIMAL_SHIFT = 16;
mf.Keyboard.DECIMAL_CTRL = 17;
mf.Keyboard.DECIMAL_ALT = 18;
mf.Keyboard.DECIMAL_ENTER = 13;
mf.Keyboard.DECIMAL_SUPPR = 46;
mf.Keyboard.DECIMAL_DEL = 8;
mf.Keyboard.DOWN_SHIFT = false;
mf.Keyboard.DOWN_CTRL = false;
mf.Keyboard.DOWN_ALT = false;
mf.Keyboard.DOWN_SUPPR = false;
mf.Keyboard.DOWN_DEL = false;
mf.Keyboard.DOWN_WIN = false;
mf.Keyboard.LAST_CARACTER = '';
mf.Keyboard.LAST_KEY = 0;
mf.Keyboard.Downs = new Array();
mf.Keyboard.intervalClean = false;
}
mf.validateEmail = function(str)
{
var filter=/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return(filter.test(str));
}
function mondoFlashHandlerClass()
{
var TabFlashDivs = new Array();
this.TabFlashDivs = TabFlashDivs;
function register( flashdiv, altdiv, version )
{
this.TabFlashDivs.push(new Array( flashdiv, altdiv, version ));
};
this.register = register;
function insert()
{
var FlashPlayerVersionObject = 10; //deconcept.SWFObjectUtil.getPlayerVersion();
var flashdiv;
var altdiv;
var version;
for( var f=0; f < TabFlashDivs.length; f++ )
{
version = TabFlashDivs[f][2];
if( FlashPlayerVersionObject.major < parseInt(version) )
{
flashdiv = TabFlashDivs[f][0];
altdiv = TabFlashDivs[f][1];
elements(flashdiv).innerHTML = elements(altdiv).innerHTML;
}
}
};
this.insert = insert;
};
var CloseThis = false;
var IdOpened = true;
var TabMenuBtns = new Array();
var TabMenuEtat = new Array();
var mondoEaseManager = new mf.Ease.mondoEaseManagerClass();
var mondoXmlClient = new mf.mondoXmlClientClass();
var mondoFlashHandler = new mondoFlashHandlerClass();
mf.Event.addLoadEvent(mf.Event.insertAfterLoad);
mf.init();
var m = function(id)
{
return new mfelement(id);
}
m.ajax = function(req,reqtype,resptype,data,callback)
{
var ajax_tool = new mf.mondoXmlClientClass();
ajax_tool.LoadResult( req, callback, false, resptype, data );
}
m.easeMenu = function()
{
var ease_menu = new mf.Ease.AutoOpenCloseMenuClass();
return ease_menu;
}
var mfelement = function(id)
{
var o;
if( !exists(id) )
{
o = mf.Object.createElement('div', {'id':Math.random()});
}
else
{
o = document.getElementById(id);
if( !o )
{
alert('element with id "'+id+'" does not exist');
return false;
}
}
this.o = o;
function display(p){this.o.style.display = p;return this;};this.display = display;
function fill(p){this.o.innerHTML = p;return this;};this.fill = fill;
function setW(p){this.o.style.width = p+"px";return this;};this.setW = setW;
function getW(){return mf.Object.getWidth(this.o);};this.getW = getW;
function setH(p){this.o.style.height = p+"px";return this;};this.setH = setH;
function getH(){return mf.Object.getHeight(this.o);};this.getH = getH;
function setFloat(p){mf.Object.setFloat(this.o,p);return this;};this.setFloat = setFloat;
function getFloat(rec)	{return mf.Object.getFloat(this.o, rec);};this.getFloat = getFloat;
function setClass(p){mf.Object.setClass(this.o,p);return this;};this.setClass = setClass;
function getTop(){return mf.Object.getTop(this.o)};this.getTop = getTop;
function getLeft(){return mf.Object.getLeft(this.o)};this.getLeft = getLeft;
function setXY(x,y){mf.Object.setPos(this.o,x,y); return this;};this.setXY = setXY;
function append(obj){mf.Object.insertAfter(this.o,obj); return this;};this.append = append;
function prepend(obj){this.o.parentNode.insertBefore(obj,this.o); return this;};this.prepend = prepend;
function setAlpha(a){mf.Object.setAlpha(this.o,a); return this;};this.setAlpha = setAlpha;
function meltErase(cb){mf.Object.meltErase(this.o); return this;};this.meltErase = meltErase;
function meltShow(cb){mf.Object.meltShow(this.o); return this;};this.meltShow = meltShow;
function autoFillWithSelection(){mf.Utils.setAutoFillInput(this.o.id); return this;};this.autoFillWithSelection = autoFillWithSelection;
function setDefaultValue(p){mf.Inputs.setDefaultInputValue(this.o.id, p);return this;}this.setDefaultValue = setDefaultValue;
function createElement(tagname, attributes){this.o.appendChild( mf.Object.createElement(tagname, attributes) ); return this;}this.createElement = createElement;
function appendChild(obj){this.o.appendChild(obj);return this;};this.appendChild = appendChild;
function addEvent(type,cb){mf.Event.addEvent(this.o, type, cb, true); return this;};this.addEvent = addEvent;
function removeEvent(type,cb){mf.Event.removeEvent(this.o, type, cb, true); return this;};this.removeEvent = removeEvent;
function hitTest(obj){return mf.Object.hitTestObject(this.o,obj);};this.removeEvent = removeEvent;
};
function xmlEntities(txt)
{
if( typeof(txt) != 'string' )
{
return txt;
}
var Searches = new Array("(\&)", "(\<)", "(\>)", "(\")");
var Replaces = new Array('&amp;', '&lt;', '&gt;', '&quot;');
for( var i = 0; i < Searches.length; i++ )
{
txt = txt.replace( Searches[i], Replaces[i] );
}
return txt;
}
mf.hasSmartTexts = false;
mf.smartTextFURL = '';
mf.SmartTexts = new Array();
mf.performSmartTextInsertion = function()
{
for(var f = 0; f < mf.SmartTexts.length; f++)
{
}
}
mf.insertSmartText = function( divID, text, is_embed, font, size, color )
{
var HVars = new Array();
HVars.push( ['text', text] );
HVars.push( ['font', "Cantoria MT"] );
HVars.push( ['embed_font', "true"] );
HVars.push( ['size', size] );
HVars.push( ['color', color] );
mf.SmartTexts.push( [divID, mf.Text.makeFlashObject( mf.smartTextFURL, "300px", "50px", false, "best", true, true, false, HVars ) ]);
if( !mf.hasSmartTexts )
{
mf.hasSmartTexts = true;
mf.Event.addLoadEvent(mf.performSmartTextInsertion);
}
}
mf.findIframe = function(id)
{
if(mf.IE)
{
return exists( window.frames[id] );
}
else
{
return exists( document.getElementById(id) );
}
}
mf.getIframeContent = function(id)
{
if(mf.IE)
{
if( exists( window.frames[id] ) )
{
return window.frames[id].document.body.innerHTML;
}
else
{
alert('Iframe with id ' + id + ' does not exist');
return false;
}
}
else
{
if( exists( document.getElementById(id) ) )
{
return document.getElementById(id).contentDocument.body.innerHTML;
}
else
{
alert('Iframe with id ' + id + ' does not exist');
return false;
}
}
}
mf.setIframeContent = function(iframeid, content)
{
if(mf.IE)
window.frames[iframeid].document.body.innerHTML = content;
else
document.getElementById(iframeid).contentDocument.body.innerHTML = content;
}
mf.copyIframeContent = function(iframeid,textareaid)
{
if(mf.IE)
{
document.getElementById(textareaid).value = window.frames[iframeid].document.body.innerHTML;
}
else// if(MOZ)
{
document.getElementById(textareaid).value = document.getElementById(iframeid).contentDocument.body.innerHTML;
}
}
var eZFilterArray = new Array();
mf.eZFilter = function(fetch_type,input_id,parent_node_id,content_class,container_id,end_eval,show_all,processor,loader_div_id)
{
this.fetch_type = fetch_type;
this.input_id = input_id;
this.parent_node_id = parent_node_id;
this.content_class = content_class;
this.container_id = container_id;
this.end_eval = end_eval;
this.show_all = show_all;
this.loader_div_id = loader_div_id;
this.FILTERING = false;
this.NEXT_REQ = false;
this.loader = new mf.mondoXmlClientClass();
this.original_content = elements(this.container_id).innerHTML;
this.processor = processor;
this.extra_filter = '';
this.min_length = 2;
this.noCareUpKeys = new Array(16, 17, 18, 13, 224);
mf.Event.addEvent(elements(this.input_id), "keyup", mf.eZFilter.onFilterChange, false);
function filter(str, pressed_key)
{
if( in_array( pressed_key, this.noCareUpKeys ) ) return false;
if( str.length > this.min_length )
{
if( elements( this.loader_div_id ) )
elements( this.loader_div_id ).style.display = "inline";
if( this.FILTERING )
{
this.NEXT_REQ = elements(this.input_id).value;
return false;
}
this.FILTERING = true;
_this = this;
this.loader.LoadResult('/mondocontent/xml/(fetch)/'+this.fetch_type+'/(node)/'+this.parent_node_id+"/(classes)/"+this.content_class+"/(mf_filter)/text_brut[!0]"+str + '/' + this.extra_filter, function(res){_this.displayResult(res)}, false, "ezobject" );
}
else if( str.length == 0) // this.show_all &&
{
elements(this.container_id).innerHTML = this.original_content;
}
}
this.filter = filter;
function displayResult( tabResult )
{
if( this.NEXT_REQ )
{
var str = this.NEXT_REQ;
this.NEXT_REQ = false;
this.FILTERING = false;
this.filter(str, null);
return false;
}
var output = '';
if( tabResult.length )
{
if( typeof( this.processor ) == "function" )
{
output = this.processor(tabResult);
}
else
{
var node = false;
var output = '';
for( var r = 0; r < tabResult.length; r++ )
{
node = tabResult[r];
output += '<li><a href="'+node['url']+'">'+node['title']+'</a></li>';
}
}
}
else
{
output = '<li>No matching records</li>';
}
elements(this.container_id).innerHTML = output;
if( exists(this.end_eval) ) eval( this.end_eval );
this.FILTERING = false;
this.NEXT_REQ = false;
if( elements( this.loader_div_id ) )
elements( this.loader_div_id ).style.display = "none";
}
this.displayResult = displayResult;
function resetOriginalContent()
{
this.original_content = elements(this.container_id).innerHTML;
}
this.resetOriginalContent = resetOriginalContent;
eZFilterArray[this.input_id] = this;
};
mf.eZFilter.onFilterChange = function(evt)
{
var sender = mf.Event.getEventElement( evt );
var filter_instance = eZFilterArray[sender.getAttribute('id')];
filter_instance.filter(sender.value, mf.Keyboard.getKey(evt));
};
mf.alternDiv = function(id, TabObjs, it, avoid_first, id2)
{
this.id = id;
this.Tab = TabObjs;
this.i = Math.floor(Math.random() * this.Tab.length);
this.IdInterval = 0;
this.interval = it;
this.avoid_first = exists(avoid_first) && avoid_first ? true:false;
this.id2 = exists(id2) && id2 ? id2:false;
this.ab = true;
function initAnimation()
{
if(!this.avoid_first)	elements(this.id).innerHTML = this.Tab[this.i];
mf.Object.allowTransparency(elements(this.id));
_this = this;
if(this.id2)
{
this.i = 0;
mf.Object.allowTransparency(elements(this.id2));
this.IdInterval = window.setInterval(function(){_this.doublealternate();}, this.interval );
}
else
{
this.IdInterval = window.setInterval(function(){_this.alternate();}, this.interval );
}
};
this.initAnimation = initAnimation;
function doublealternate()
{
this.i++;
if( this.i >= this.Tab.length ) this.i = 0;
this.ab = !this.ab;
if( this.ab )
{
elements(this.id).innerHTML = this.Tab[this.i];
mf.Object.meltErase( elements(this.id2) );
mf.Object.meltShow( elements(this.id) );
}
else
{
elements(this.id2).innerHTML = this.Tab[this.i];
mf.Object.meltErase( elements(this.id) );
mf.Object.meltShow( elements(this.id2) );
}
};
this.doublealternate = doublealternate;
function alternate()
{
_this = this;
mf.Object.meltErase( elements(this.id), function(){_this.eraseCallBack();} );
};
this.alternate = alternate;
function eraseCallBack()
{
this.i++;
if( this.i >= this.Tab.length ) this.i = 0;
elements(this.id).innerHTML = this.Tab[this.i];
mf.Object.meltShow(elements(this.id));
};
this.eraseCallBack = eraseCallBack;
_this = this;
mf.Event.addLoadEvent(function(){_this.initAnimation();});
};
var mondoGraphicalLoader = false;
var mondoGraphicalLoaderShown = false;
function displayLoader(loader_text)
{
if( mondoGraphicalLoaderShown )
{
if( exists( loader_text ) )
{
elements('mondo_loader_title').style.display = "block";
elements('mondo_loader_title').innerHTML = loader_text;
}
return;
}
mondoGraphicalLoaderShown = true;
if(!mondoGraphicalLoader)
{
createLoader();
}
if( exists( loader_text ) )
{
elements('mondo_loader_title').style.display = "block";
elements('mondo_loader_title').innerHTML = loader_text;
}
else
{
elements('mondo_loader_title').style.display = "none";
}
mf.Object.allowTransparency(mondoGraphicalLoader, 235)
mf.Object.setAlpha( mondoGraphicalLoader, 0.5 )
mondoGraphicalLoader.style.zIndex = "1000";
mondoGraphicalLoader.style.display = "block";
mf.Object.Center( mondoGraphicalLoader, 235, 235 );
};
function createLoader()
{
var loaderHTML = '<h1 id="mondo_loader_title" style="display:none;"></h1><div class="border-box"><div class="border-tl"><div class="border-tr"><div class="border-tc"/></div></div><div class="border-ml"><div class="border-mr"><div class="border-mc float-break">'
+'<img src="/extension/mondowizard/design/standard/images/wizard/loading.gif"/>'
+'</div></div></div><div class="border-bl"><div class="border-br"><div class="border-bc"/></div></div></div></div></div></div>';
mondoGraphicalLoader = mf.Object.createElement('div', {'style':'display:none; position:absolute; left:10px; top:10px;', 'id':'little-wizard-loading' });
mondoGraphicalLoader.innerHTML = loaderHTML;
document.body.appendChild( mondoGraphicalLoader );
};
function hideLoader()
{
if(!mondoGraphicalLoader) return;
mondoGraphicalLoader.style.display = "none";
mondoGraphicalLoaderShown = false;
};
function strip_tags(text)
{
return text.replace(/<\/?[^>]+>/gi, '');
};
var StartAtZero = 0;
var sort_table_it = false;
function sortTable(tb, n, h)
{
document.body.style.cursor = 'wait';
sort_table_it = setTimeout(function(){performSortTable(tb, n);}, 50);
};
function performSortTable(tb, n, h)
{
clearInterval( sort_table_it );
while (!tb.tagName || tb.tagName.toLowerCase() != "table")
{
if (!tb.parentNode) return;
tb = tb.parentNode;
}
if (tb.tBodies && tb.tBodies[0]) tb = tb.tBodies[0];
var sort_order = 1;
var attr_sort_column = tb.getAttribute('sort_column');
if( n == attr_sort_column )
{
var attr_sort_order = parseInt(tb.getAttribute('sort_order'));
if( attr_sort_order == 1 ) sort_order = 0;
}
tb.setAttribute('sort_column', n);
tb.setAttribute('sort_order', sort_order);
var trs = tb.getElementsByTagName('tr');
var trs_free = new Array();
while( trs.length > 1 )
{
trs_free.push(trs[1].parentNode.removeChild(trs[1]));
}
var trs_sorted = sortTRTags(trs_free, n, sort_order);
for( var j = 0; j < trs_sorted.length; j++ )
{
tb.appendChild(trs_sorted[j]);
}
document.body.style.cursor = '';
};
function sortTRTags(trs, n, sort_order)
{
var st = 0;
var lim = st+1;
var Data = new Array();
var Nulls = new Array();
var i = 0;
var j = 0;
var last = false;
for( var t = 0; t < trs.length; t++ )
{
var temp_row = trs[t];
var r = temp_row.getElementsByTagName('td')[n];
if( r.getAttribute('value') )
{
var str = trim(strip_tags( r.getAttribute('value') ));
}
else
{
var str = trim(strip_tags( r.innerHTML ));
}
if( str == null )
{
Nulls[j] = [temp_row];
last = false;
j++;
}
else
{
Data[i] = {'node':temp_row, 'str':str};
last = true;
i++;
}
}
Data.sort(compRows);
if( n > 0 )
{
var newdata = new Array();
var subdata = new Array(Data[0]);
var str = Data[0]['str'];
r = Data[0]['node'].getElementsByTagName('td')[0];
if( r.getAttribute('value') )
Data[0]['str'] = trim(strip_tags( r.getAttribute('value') ));
else
Data[0]['str'] = trim(strip_tags( r.innerHTML ));
for( var j = 1; j < Data.length; j++ )
{
st = Data[j]['str'];
r = Data[j]['node'].getElementsByTagName('td')[0];
if( r.getAttribute('value') )
Data[j]['str'] = trim(strip_tags( r.getAttribute('value') ));
else
Data[j]['str'] = trim(strip_tags( r.innerHTML ));
if( st  != str )
{
str = st;
subdata.sort(compRows);
for( var s = 0; s < subdata.length; s++ )
{
newdata.push(subdata[s] );
}
subdata = new Array();
}
subdata.push(Data[j]);
}
subdata.sort(compRows);
for( var s = 0; s < subdata.length; s++ ) newdata.push(subdata[s] );
Data = newdata;
}
if(sort_order == 0) Data.reverse();
var trs_sorted = new Array();
for( var j = 0; j < Nulls.length; j++ )
{
for( var k = 0; k < Nulls[j].length; k++ )
trs_sorted.push(Nulls[j][k]);
}
for( var j = 0; j < Data.length; j++ )
{
trs_sorted.push(Data[j]['node']);
}
return trs_sorted;
};
function compRows(a, b)
{
if( parseFloat( a['str']) == a['str'] )
{
if( parseFloat(a['str']) <= parseFloat(b['str']) ) return -1;
return 1;
}
if( a['str'] <= b['str'] ) return -1;
return 1;
};
function switchSortClass(element)
{
var old = element.className;
var was_nothing = ( old.indexOf('ascending') == -1 );
var was_asorted = ( old.indexOf('descending') > -1 );
var childs = element.parentNode.childNodes;
for( var c = 0; c < childs.length; c++ )
{
if( is_element(	childs[c]) )
{
if( childs[c].className.indexOf('descending') > -1 )
childs[c].className = trim(childs[c].className.split('descending').join(''));
if( childs[c].className.indexOf('ascending') > -1 )
childs[c].className = trim(childs[c].className.split('ascending').join(''));
}
}
if(was_nothing || was_asorted )
element.className += ' ascending';
else
element.className += ' descending';
};
function addClass(o,classname)
{
var old = o.className;
if( old.indexOf(classname) == -1 )
{
o.className += " " + classname;
return;
}
};
function removeClass(o,classname)
{
var old = o.className;
if( old.indexOf(classname) == -1 )	return;
if(trim(o.className) == classname)
{
o.className = '';
return;
}
var class_parts = o.className.split(' ');
var new_classes = new Array();
for( var i = 0; i < class_parts.length; i++ )
{
if( trim(class_parts[i]) != classname )
new_classes.push(trim(class_parts[i]));
}
o.className = new_classes.join(' ');
};
function setSelect(o,val)
{
if( o.tagName.toUpperCase() != 'SELECT' ) return;
var opts = o.childNodes;
for( var i = 0; i < opts.length; i++ )
{
if( !is_element(opts[i]) ) continue;
if( opts[i].value == val )
{
opts[i].setAttribute('selected', 'selected');
return;
}
}
};
mf.pngsfix = function(div)
{
var imgs = div.getElementsByTagName('img');
for( var i = 0; i < imgs.lenght; i++ )
{
if(is_element(imgs[i])) mf.pngfix(imgs[i]);
}
};
mf.pngfix = function(img)
{
var imgID = (img.id) ? "id='" + img.id + "' " : ""
var imgClass = (img.className) ? "class='" + img.className + "' " : ""
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
var imgStyle = "display:inline-block;" + img.style.cssText
if (img.align == "left") imgStyle = "float:left;" + imgStyle
if (img.align == "right") imgStyle = "float:right;" + imgStyle
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
var strNewHTML = "<span " + imgID + imgClass + imgTitle
+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
img.outerHTML = strNewHTML
};
mf.pngFix = function()
{
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])
if ((version >= 5.5) && (document.body.filters))
{
for(var i=0; i<document.images.length; i++)
{
var img = document.images[i]
var imgName = img.src.toUpperCase()
if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
{
var imgID = (img.id) ? "id='" + img.id + "' " : ""
var imgClass = (img.className) ? "class='" + img.className + "' " : ""
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
var imgStyle = "display:inline-block;" + img.style.cssText
if (img.align == "left") imgStyle = "float:left;" + imgStyle
if (img.align == "right") imgStyle = "float:right;" + imgStyle
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
var strNewHTML = "<span " + imgID + imgClass + imgTitle
+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
img.outerHTML = strNewHTML
i = i-1
}
}
}
}
mf.eZ = {};
mf.eZ.showDatePicker = function(base, id, datatype )
{
var calIconID = base + '_' + datatype + '_cal_' + id;
var calContainerID = base + '_' + datatype + '_cal_container_' + id;
var calContainer = document.getElementById( calContainerID );
if( calContainer.parentNode.tagName.toUpperCase() != "BODY" ) document.body.appendChild(calContainer.parentNode.removeChild(calContainer) );
var xy = YAHOO.util.Dom.getXY( calIconID );
calContainer.style.left = ( xy[0] + 26 ) + 'px';
calContainer.style.top = ( xy[1] + 30 ) + 'px';
calContainer.style.display = 'block';
window['cal'+id] = new YAHOO.widget.Calendar( base + '_' + datatype + '_cal_' + id , calContainerID, { close: true,
mindate: "1/1/1970",
LOCALE_WEEKDAYS: "medium" } );
window['cal'+id].render();
window['cal'+id].selectEvent.subscribe( handleSelect, window['cal'+id], true );
}
mf.eZ.handleDatePickerSelect = function(type,args,obj)
{
var dates = args[0];
var date = dates[0];
var year = date[0], month = date[1], day = date[2];
var objIDArray = obj.id.split( '_' );
var id = objIDArray[3];
var datatype = objIDArray[1];
var base = objIDArray[0];
var txtYear = document.getElementsByName( base + '_' + datatype + '_year_' + id );
txtYear[0].value = year;
var txtMonth = document.getElementsByName( base + '_' + datatype + '_month_' + id );
txtMonth[0].value = month;
var txtDay = document.getElementsByName( base + '_' + datatype + '_day_' + id );
txtDay[0].value = day;
window['cal'+id].hide();
}
mf.submitForm = function(el,evt)
{
if( mf.Keyboard.getEventKey(evt) != DECIMAL_ENTER) return true;
el.form.submit();
return false;
}
mf.changeExternalLinkTarget = function()
{
var a;
var as = document.getElementsByTagName('a');
for( var i = 0; i < as.length; i++ )
{
a = as[i];
if( !a.getAttribute('href') ) continue;
if( a.getAttribute('href').indexOf('http') == 0 ) a.setAttribute('target', '_blank');
}
}
mf.Blink = function(el,c1,c2,it)
{
var color_1 = c1;
this.color_1 = color_1;
var color_2 = c2;
this.color_2 = color_2;
var element = el;
this.element = element;
var interval = it;
this.interval = interval;
var idInterval = false;
this.idInterval = idInterval;
var b = false;
this.b = b;
this.element.style.color = this.color_1;
var altern = function()
{
if( this.b )
{
this.element.style.color = this.color_1;
this.b = false;
}
else
{
this.element.style.color = this.color_2;
this.b = true;
}
}
this.altern = altern;
_this = this;
this.idInterval = setInterval(function(){_this.altern();}, this.interval);
}
mf.glossary = {};
mf.glossary.initialized = false;
mf.glossary.bubblecanvas = false;
mf.glossary.idIntervalHide = 0;
mf.glossary.currentBubbleSource = false;
mf.glossary.hiddingBubble = false;
mf.glossary.idIntervalDisplayBubble = 0;
mf.glossary.hideInterval = 1000;
mf.glossary.wordHoverInterval = 400;
mf.glossary.onWordHover = function(el,id)
{
mf.Event.addEvent(el,'mouseout',mf.glossary.onWordOut);
mf.glossary.idIntervalDisplayBubble = setInterval(function(){mf.glossary.displayBubble(el, id);}, mf.glossary.wordHoverInterval);
};
mf.glossary.onWordOut = function()
{
clearInterval(mf.glossary.idIntervalDisplayBubble);
};
mf.glossary.displayBubble = function(el, id)
{
clearInterval(mf.glossary.idIntervalDisplayBubble);
if( mf.glossary.currentBubbleSource )
{
mf.Event.removeEvent( mf.glossary.currentBubbleSource, "mouseout", mf.glossary.onBubbleBlur);
mf.Event.removeEvent( mf.glossary.currentBubbleSource, "mouseover", mf.glossary.onBubbleOver);
mf.glossary.currentBubbleSource = false;
}
mf.glossary.currentBubbleSource = el;
if( !mf.glossary.bubblecanvas )
{
mf.glossary.bubblecanvas = document.createElement('div');
mf.glossary.bubblecanvas.style.position = 'absolute';
mf.glossary.bubblecanvas.style.zIndex = 2000;
mf.glossary.bubblecanvas.setAttribute('id', 'calendar-info-bubble');
mf.glossary.bubblecanvas.innerHTML = '<div class="border-box">'
+'<div class="border-tl"><div class="border-tr"><div class="border-tc"></div></div></div>'
+'<div class="border-ml"><div class="border-mr"><div class="border-mc float-break">'
+'<div id="calendar-info-bubble-content" style="width: 200px;"></div>'
+'</div></div></div>'
+'<div class="border-bl"><div class="border-br"><div class="border-bc"></div></div></div>'
+'<div id="bubble_arrow"></div>'
+'</div>';
mf.Object.setAlpha(mf.glossary.bubblecanvas,0);
mf.glossary.bubblecanvas.style.display = "none";
mf.Event.addEvent( mf.glossary.bubblecanvas, "click", mf.glossary.hideBubble, false);
mf.Event.addEvent( document.body, "click", mf.glossary.hideBubble, false);
mf.Event.addEvent( mf.glossary.bubblecanvas, "mouseout", mf.glossary.onBubbleBlur, false);
mf.Event.addEvent( mf.glossary.bubblecanvas, "mouseover", mf.glossary.onBubbleOver, false);
document.body.appendChild(mf.glossary.bubblecanvas);
}
mf.Event.addEvent( el, "mouseout", mf.glossary.onBubbleBlur, false);
mf.Event.addEvent( el, "mouseover", mf.glossary.onBubbleOver, false);
var text = '<h1>'+Words[id]+'</h1>';
text += "<p>" + Definitions[id] + "</p>";
elements('calendar-info-bubble-content').innerHTML = text;
var X = mf.Object.getLeft(el);
var Y = mf.Object.getTop(el);
mf.glossary.bubblecanvas.style.display = "block";
var TheX = X;
var TheY = Y+5-mf.Object.getHeight(mf.glossary.bubblecanvas);
if( TheX < mf.Screen.getLeft0() ) TheX = mf.Screen.getLeft0()
if( TheY < mf.Screen.getTop0() ) TheY = mf.Screen.getTop0()
mf.glossary.bubblecanvas.style.left = TheX+"px";
mf.glossary.bubblecanvas.style.top = TheY+"px";
mf.Object.meltShow( mf.glossary.bubblecanvas );
};
mf.glossary.hideBubble = function()
{
clearInterval( mf.glossary.idIntervalHide );
if( !mf.glossary.bubblecanvas )
{
mf.glossary.hiddingBubble = false;
return;
}
mf.glossary.hiddingBubble = true;
if( mf.glossary.currentBubbleSource )
{
mf.Event.removeEvent( mf.glossary.currentBubbleSource, "mouseout", mf.glossary.onBubbleBlur);
mf.Event.removeEvent( mf.glossary.currentBubbleSource, "mouseover", mf.glossary.onBubbleOver);
mf.glossary.currentBubbleSource = false;
}
mf.Object.meltErase( mf.glossary.bubblecanvas, mf.glossary.removeBubble );
};
mf.glossary.onBubbleBlur = function(evt)
{
if( mf.glossary.hiddingBubble ) return;
mf.glossary.hiddingBubble = true;
mf.glossary.idIntervalHide = setInterval(mf.glossary.hideBubble, mf.glossary.hideInterval);
};
mf.glossary.onBubbleOver = function()
{
clearInterval( mf.glossary.idIntervalHide );
mf.glossary.hiddingBubble = false;
};
mf.glossary.removeBubble = function()
{
mf.glossary.hiddingBubble = false;
mf.glossary.bubblecanvas.style.display = "none";
};
mf.drawer = function(id, width, height, unit_width, bg_color, data)
{
this.element = elements(id);
this.width = width;
this.height = height;
this.bg_color = bg_color;
this.unit_width = unit_width;
this.data = data;
this.offsetX = this.width / this.data.length;
this.element.style.width = this.width + "px";
this.element.style.height = this.height + "px";
this.element.style.backgroundColor = this.bg_color;
this.element.style.position = 'relative';
this.element.style.zIndex = 1;
this.element.style.overflow = 'hidden';
this.elements = new Array();
this.anim_elements = new Array();
this.iTransition = 0;
this.NbImagesTransition = 8;
this.it = 35;
this.ChvChmt = this.unit_width - this.width / this.data.length;
this.PlaceOthers = (this.width - this.unit_width)/( this.data.length-1);
this.init = function()
{
var _this = this;
for( var i = 0; i < this.data.length; i++ )
{
var el = document.createElement('div');
el.style.height = this.height + 'px';
el.style.width = this.unit_width + 'px';
el.style.position = 'absolute';
el.style.zIndex = i;
el.style.left = i * this.offsetX + 'px';
el.setAttribute('drawer_id', i);
el.x = i* (this.unit_width - this.ChvChmt);
el.xbase = el.xcurr = el.x;
el.xcible = 0;
var img = new Image();
img.src = this.data[i];
img.style.height = this.height + 'px';
el.appendChild(img);
mf.Event.addEvent(el, 'mouseover', function(evt){_this.onMouseOver(evt)});
mf.Event.addEvent(el, 'mouseout', function(evt){_this.onMouseOut(evt)});
this.elements.push(el);
this.element.appendChild(el);
}
}
this.onMouseOver = function(evt)
{
clearInterval(this.IdInterval);
var el = mf.Event.getEventElement(evt);
while(el.tagName.toUpperCase() != 'DIV') el = el.parentNode;
this.currentEl = el;
var IdLinkHover = parseInt(this.currentEl.getAttribute('drawer_id'));
for(var li=0;li<=IdLinkHover;li++)
{
this.elements[li].xcible = li * this.PlaceOthers;
this.elements[li].xcurr = this.elements[li].x;
}
for(li=IdLinkHover+1;li<this.elements.length;li++)
{
this.elements[li].xcible = IdLinkHover * this.PlaceOthers + this.unit_width + (li - (IdLinkHover+1)) * this.PlaceOthers;
this.elements[li].xcurr = this.elements[li].x;
}
this.launchAnimation();
}
this.onMouseOut = function(evt)
{
var li;
clearInterval(this.IdInterval);
for(li=0;li<this.elements.length;li++)
{
this.elements[li].xcible = this.elements[li].xbase;
this.elements[li].xcurr = this.elements[li].x;
}
this.launchAnimation();
}
this.launchAnimation = function()
{
this.iTransition = 0;
var _this = this;
this.IdInterval = setInterval(function(){_this.animate();}, this.it);
}
this.animate = function()
{
var ib;
if(this.iTransition < this.NbImagesTransition)
{
for(ib=0;ib<this.elements.length;ib++)
{
this.elements[ib].x = parseFloat(this.elements[ib].xcurr) + this.iTransition * ((parseFloat(this.elements[ib].xcible) - parseFloat(this.elements[ib].xcurr))/this.NbImagesTransition);
this.elements[ib].style.left = parseFloat(this.elements[ib].x) + 'px';
}
this.iTransition++;
}
else
{
for(ib=0; ib < this.elements.length; ib++)
{
this.elements[ib].xcurr = this.elements[ib].x = this.elements[ib].xcible;
this.elements[ib].style.left = parseFloat(this.elements[ib].x) + 'px';
}
clearInterval(this.IdInterval);
}
}
this.init();
}
mf.drawer2 = function(id, width, height, unit_width, bg_color, data, equi, first, nb, it, activate_hover)
{
this.element = elements(id);
this.width = width;
this.height = height;
this.bg_color = bg_color;
this.unit_width = unit_width;
this.data = data;
this.offsetX = this.width / this.data.length;
this.equi = true;
this.element.style.width = this.width + "px";
this.element.style.height = this.height + "px";
this.element.style.backgroundColor = this.bg_color;
this.element.style.position = 'relative';
this.element.style.zIndex = 1;
this.element.style.overflow = 'hidden';
this.elements = new Array();
this.anim_elements = new Array();
this.iTransition = 0;
this.NbImagesTransition = 8;
this.it = 35;
this.first = first;
this.activate_hover = true;
if( typeof(it) != 'undefined' ) this.it = it;
if( typeof(nb) != 'undefined' ) this.NbImagesTransition = nb;
if( typeof(equi) != 'undefined' ) this.equi = equi;
if( typeof(activate_hover) != 'undefined' ) this.activate_hover = activate_hover;
this.ChvChmt = this.unit_width - this.width / this.data.length;
this.PlaceOthers = (this.width - this.unit_width)/( this.data.length-1);
this.callbacks = new Array();
this.init = function()
{
var _this = this;
for( var i = 0; i < this.data.length; i++ )
{
var el = document.createElement('div');
el.style.height = this.height + 'px';
el.style.width = this.unit_width + 'px';
el.style.position = 'absolute';
el.style.zIndex = i;
el.setAttribute('drawer_id', i);
if( this.equi )
{
el.style.left = i * this.offsetX + 'px';
el.x = i* (this.unit_width - this.ChvChmt);
}
else if( typeof(this.first) != 'undefined')
{
if( i <= this.first )
{
el.style.left = i * this.offsetX + 'px';
el.x = i* (this.unit_width - this.ChvChmt);
}
else
{
el.x = i * this.PlaceOthers + this.unit_width + (i - (i+1)) * this.PlaceOthers;
el.style.left = el.x + 'px';
}
}
else
{
el.style.left = i * this.PlaceOthers + 'px';
el.x = i * this.PlaceOthers;
}
el.xbase = el.xcurr = el.x;
el.xcible = 0;
var img = new Image();
img.src = this.data[i];
img.style.height = this.height + 'px';
el.appendChild(img);
var elHTML = document.createElement('div');
elHTML.style.display = 'none';
elHTML.setAttribute('id', 'banner_html_'+i);
el.appendChild(elHTML);
if( this.activate_hover ) mf.Event.addEvent(el, 'mouseover', function(evt){_this.onMouseOver(evt)});
if( this.equi )	mf.Event.addEvent(el, 'mouseout', function(evt){_this.onMouseOut(evt)});
this.elements.push(el);
this.element.appendChild(el);
}
}
this.addTrigger = function(el, id, callback)
{
_this = this;
el.setAttribute('drawer_id', id);
el.style.cursor = 'pointer';
mf.Event.addEvent(el, 'mouseover', function(evt){_this.onMouseOver(evt)});
if( typeof(callback) == 'function' ) this.addCallBack(id, callback);
}
this.addCallBack = function(id,callback)
{
if( typeof(this.callbacks[id]) == 'function' )
{
var old_cb = this.callbacks[id];
this.callbacks[id] = function()
{
old_cb();
callback();
}
}
else
{
this.callbacks[id] = callback;
}
}
this.addEvent = function(id, type, callback)
{
if( typeof(this.elements[id]) == 'undefined' ) return;
this.elements[id].style.cursor = 'pointer';
mf.Event.addEvent(this.elements[id], type, callback);
}
this.addHTML = function(id, html, left, top, max_width, max_height, color)
{
var elHTML = elements('banner_html_'+id);
elHTML.style.color = color;
elHTML.style.marginLeft = left+'px';
elHTML.style.marginTop = ( -this.height + top ) + 'px';
elHTML.style.maxWidth = max_width;
elHTML.style.maxHeight = max_height;
elHTML.style.position = 'relative';
elHTML.style.display = 'block';
elHTML.innerHTML = html;
}
this.onMouseOver = function(evt)
{
clearInterval(this.IdInterval);
var el = mf.Event.getEventElement(evt);
while(el.tagName.toUpperCase() != 'DIV') el = el.parentNode;
this.currentEl = el;
var IdLinkHover = parseInt(this.currentEl.getAttribute('drawer_id'));
if( typeof(this.callbacks[IdLinkHover]) == 'function' ) this.callbacks[IdLinkHover](el);
for(var li=0;li<=IdLinkHover;li++)
{
this.elements[li].xcible = li * this.PlaceOthers;
this.elements[li].xcurr = this.elements[li].x;
}
for(li=IdLinkHover+1;li<this.elements.length;li++)
{
this.elements[li].xcible = IdLinkHover * this.PlaceOthers + this.unit_width + (li - (IdLinkHover+1)) * this.PlaceOthers;
this.elements[li].xcurr = this.elements[li].x;
}
this.launchAnimation();
}
this.triggerMouseOver = function(id)
{
clearInterval(this.IdInterval);
var el = this.elements[id];
this.currentEl = el;
var IdLinkHover = parseInt(this.currentEl.getAttribute('drawer_id'));
if( typeof(this.callbacks[IdLinkHover]) == 'function' ) this.callbacks[IdLinkHover](el);
for(var li=0;li<=IdLinkHover;li++)
{
this.elements[li].xcible = li * this.PlaceOthers;
this.elements[li].xcurr = this.elements[li].x;
}
for(li=IdLinkHover+1;li<this.elements.length;li++)
{
this.elements[li].xcible = IdLinkHover * this.PlaceOthers + this.unit_width + (li - (IdLinkHover+1)) * this.PlaceOthers;
this.elements[li].xcurr = this.elements[li].x;
}
this.launchAnimation();	}
this.onMouseOut = function(evt)
{
var li;
clearInterval(this.IdInterval);
for(li=0;li<this.elements.length;li++)
{
this.elements[li].xcible = this.elements[li].xbase;
this.elements[li].xcurr = this.elements[li].x;
}
this.launchAnimation();
}
this.launchAnimation = function()
{
this.iTransition = 0;
var _this = this;
this.IdInterval = setInterval(function(){_this.animate();}, this.it);
}
this.animate = function()
{
var ib;
if(this.iTransition < this.NbImagesTransition)
{
for(ib=0;ib<this.elements.length;ib++)
{
this.elements[ib].x = parseFloat(this.elements[ib].xcurr) + this.iTransition * ((parseFloat(this.elements[ib].xcible) - parseFloat(this.elements[ib].xcurr))/this.NbImagesTransition);
this.elements[ib].style.left = parseFloat(this.elements[ib].x) + 'px';
}
this.iTransition++;
}
else
{
for(ib=0; ib < this.elements.length; ib++)
{
this.elements[ib].xcurr = this.elements[ib].x = this.elements[ib].xcible;
this.elements[ib].style.left = parseFloat(this.elements[ib].x) + 'px';
}
clearInterval(this.IdInterval);
}
}
this.init();
}
mf.loadPicture = function(src, callback)
{
if( !mf.IE8LTE )
{
var pic = new Image();
pic.onload = function(){callback(pic);};
pic.src = src;
return;
}
var pic = new Image();
pic.it = setInterval(function(){mf.checkPicture(pic);}, 50);
pic.callback = callback;
pic.src = src;
}
mf.checkPicture = function(pic)
{
if( !pic.complete ) return;
clearInterval( pic.it );
pic.callback(pic);
}
m = {};
m.Point3D = function(x, y, z, Fl)
{
this.FL = 150;
this.vpX = 0;
this.vpY = 0;
this.cX = 0;
this.cY = 0;
this.cZ = 0;
this.x = 0;
this.y = 0;
this.z = 0;
this.x = x;
this.y = y;
this.z = z;
this.FL = Fl;
this.setVanishingPoint = function(vpX, vpY)
{
this.vpX = vpX;
this.vpY = vpY;
};
this.setCenter = function(cX,cY,cZ)
{
this.cX = cX;
this.cY = cY;
this.cZ = cZ;
};
this.setPos = function(cX,cY,cZ)
{
this.x = cX;
this.y = cY;
this.z = cZ;
};
this.screenX = function()
{
var scale = this.FL / (this.FL + this.z + this.cZ);
return this.vpX + this.cX + this.x * scale;
};
this.screenY = function()
{
var scale = this.FL / (this.FL + this.z + this.cZ);
return this.vpY + this.cY + this.y * scale;
};
this.rotateX = function(angleX)
{
var cosX = Math.cos(angleX);
var sinX = Math.sin(angleX);
var y1 = this.y * cosX - this.z * sinX;
var z1 = this.z * cosX + this.y * sinX;
this.y = y1;
this.z = z1;
};
this.rotateY = function(angleY)
{
var cosY = Math.cos(angleY);
var sinY = Math.sin(angleY);
var x1 = this.x * cosY - this.z * sinY;
var z1 = this.z * cosY + this.x * sinY;
this.x = x1;
this.z = z1;
};
this.rotateZ = function(angleZ)
{
var cosZ = Math.cos(angleZ);
var sinZ = Math.sin(angleZ);
var x1 = this.x * cosZ - this.y * sinZ;
var y1 = this.y * cosZ + this.x * sinZ;
this.x = x1;
this.y = y1;
};
};
m.Triangle3D = function(a, b, c, color)
{
var pointA; this.pointA = pointA;
var pointB; this.pointB = pointB;
var pointC; this.pointC = pointC;
var ID; this.ID = ID;
this.pointA = a;
this.pointA = b;
this.pointA = c;
this.color = color;
this.draw = function(g)
{
if (this.isBackFace()) return;
g.beginFill(color);
g.moveTo(pointA.screenX, pointA.screenY);
g.lineTo(pointB.screenX, pointB.screenY);
g.lineTo(pointC.screenX, pointC.screenY);
g.lineTo(pointA.screenX, pointA.screenY);
g.endFill();
}
this.isBackFace = function()
{
var cax = pointC.screenX - pointA.screenX;
var cay = pointC.screenY - pointA.screenY;
var bcx = pointB.screenX - pointC.screenX;
var bcy = pointB.screenY - pointC.screenY;
return cax * bcy > cay * bcx;
}
this.depth = function()
{
var zpos = Math.min(pointA.z, pointB.z);
zpos = Math.min(zpos, pointC.z);
return zpos;
}
};
m.Image3D = function(context, image, _vseg, _hseg)
{
this.ctx = context;
this.points = new Array();
this.triangles = new Array();
this._w = image.width;
this._h = image.height;
this.ix;
this.iy;
this.w2 = this._w / 2;
this.h2 = this._h / 2;
this._xMin = this._yMin = 0;
this._xMax = this._w;
this._yMax = this._h;
this._hsLen = this._w / ( _hseg + 1 );
this._vsLen = this._h / ( _vseg + 1 );
var x, y;
for ( var ix = 0 ; ix <_vseg + 2 ; ix++ )
{
for ( var iy = 0 ; iy <_hseg + 2 ; iy++ )
{
x = ix * this._hsLen;
y = iy * this._vsLen;
this.points.push( { x: x, y: y, sx: x, sy: y } );
}
}
for ( var ix = 0 ; ix <_vseg + 1 ; ix++ )
{
for ( var iy = 0 ; iy <_hseg + 1 ; iy++ )
{
this.triangles.push([ this.points[ iy + ix * ( _hseg + 2 ) ],
this.points[ iy + ix * ( _hseg + 2 ) + 1 ] ,
this.points[ iy + ( ix + 1 ) * ( _hseg + 2 ) ]
] );
this.triangles.push([ this.points[ iy + ( ix + 1 ) * ( _hseg + 2 ) + 1 ],
this.points[ iy + ( ix + 1 ) * ( _hseg + 2 ) ] ,
this.points[ iy + ix * ( _hseg + 2 ) + 1 ]
] );
}
}
this.setTransform = function( x0 , y0 , x1 , y1 , x2 , y2 , x3 , y3)
{
var w = this._w;
var h = this._h;
var l = this.points.length;
var dx30 = x3 - x0;
var dy30 = y3 - y0;
var dx21 = x2 - x1;
var dy21 = y2 - y1;
while( --l > -1 )
{
var point = this.points[ l ];
var gx = ( point.x - this._xMin ) / w;
var gy = ( point.y - this._yMin ) / h;
var bx = x0 + gy * ( dx30 );
var by = y0 + gy * ( dy30 );
point.sx = bx + gx * ( ( x1 + gy * ( dx21 ) ) - bx );
point.sy = by + gx * ( ( y1 + gy * ( dy21 ) ) - by );
}
this.render();
}
this.render = function(g)
{
var t;
var vertices = new Array();
var p0 = {};
var p1 = {};
var p2 = {};
var a = new Array();
var ctx = this.ctx;
var _sMat = Matrix.I(3);
var _tMat = Matrix.I(3);
var _sMat = Matrix.create([
[  0,  0,  0 ],
[  0,  0,  0 ],
[  0,  0,  0 ]
]);
var _tMat = Matrix.create([
[  0,  0,  0 ],
[  0,  0,  0 ],
[  0,  0,  0 ]
]);
var l = this.triangles.length;
while( --l> -1 )
{
a = this.triangles[ l ];
p0 = a[0];
p1 = a[1];
p2 = a[2];
var x0 = p0.sx;
var y0 = p0.sy;
var x1 = p1.sx;
var y1 = p1.sy;
var x2 = p2.sx;
var y2 = p2.sy;
var u0 = p0.x;
var v0 = p0.y;
var u1 = p1.x;
var v1 = p1.y;
var u2 = p2.x;
var v2 = p2.y;
var poss = [{x:x0,y:y0}, {x:x1,y:y1}, {x:x2,y:y2}];
var uvs =  [{u:u0,v:v0}, {u:u1,v:v1}, {u:u2,v:v2}];
drawTriangle(ctx, image, poss, uvs, false);
}
}
this.clear = function(w,h,f)
{
var g = this.ctx;
g.beginPath();
g.fillStyle = f;
g.fillRect(0, 0, w, h);
}
};
window.P3D = {
texture: null,
g: null
};
P3D.clear = function(f, w, h) {
var g = this.g;
g.beginPath();
g.fillStyle = f;
g.fillRect(0, 0, w, h);
}
P3D.num_cmp = function(a,b){return a-b;}
P3D.drawTriangle = function(poss, uvs, shade_clr) {
var w = this.texture.width;
var h = this.texture.height;
var g = this.g;
var vAd = [ poss[1].x - poss[0].x , poss[1].y - poss[0].y ];
var vBd = [ poss[2].x - poss[0].x , poss[2].y - poss[0].y ];
var vA = [ uvs[1].u - uvs[0].u , uvs[1].v - uvs[0].v ];
var vB = [ uvs[2].u - uvs[0].u , uvs[2].v - uvs[0].v ];
vA[0] *= w;
vA[1] *= h;
vB[0] *= w;
vB[1] *= h;
var m = new M22();
m._11 = vA[0];
m._12 = vA[1];
m._21 = vB[0];
m._22 = vB[1];
var im = m.getInvert();
if (!im) return false;
var a = im._11 * vAd[0] + im._12 * vBd[0];
var b = im._21 * vAd[0] + im._22 * vBd[0];
var c = im._11 * vAd[1] + im._12 * vBd[1];
var d = im._21 * vAd[1] + im._22 * vBd[1];
var wu = uvs[0].u * w;
var hv = uvs[0].v * h;
var du = wu * a + hv * b;
var dv = wu * c + hv * d;
g.save();
g.beginPath();
g.moveTo(poss[0].x, poss[0].y);
g.lineTo(poss[1].x, poss[1].y);
g.lineTo(poss[2].x, poss[2].y);
g.clip();
g.transform(a, c, b, d, poss[0].x - du, poss[0].y - dv);
var bx = [wu, wu+vA[0], wu+vB[0]];
var by = [hv, hv+vA[1], hv+vB[1]];
bx.sort(P3D.num_cmp);
by.sort(P3D.num_cmp);
var bw = bx[2] - bx[0];
var bh = by[2] - by[0];
if ((bx[0]+bw) <= (w-1)) bw++;
if ((by[0]+bh) <= (h-1)) bh++;
if (bx[0] >= 1) {bx[0]--; bw++;}
if (by[0] >= 1) {by[0]--; bh++;}
g.drawImage(this.texture, bx[0], by[0], bw, bh, bx[0], by[0], bw, bh);
if (shade_clr)
{
g.fillStyle = shade_clr;
g.fillRect(bx[0], by[0], bw, bh);
}
g.restore();
return true;
}
P3D.drawTestByIndexBuffer = function(pos_buf, ix_buf, culling) {
var g = this.g;
if ((ix_buf.length%3) != 0)
throw "invalid index buffer length!";
var len = ix_buf.length/3;
var i, ibase, vbase;
var poss = [{},{},{}];
g.strokeWidth = 1;
for (i = 0, ibase = 0;i < len;++i)
{
vbase = ix_buf[ibase++] << 2;
poss[0].x = pos_buf[vbase++];
poss[0].y = pos_buf[vbase  ];
vbase = ix_buf[ibase++] << 2;
poss[1].x = pos_buf[vbase++];
poss[1].y = pos_buf[vbase  ];
vbase = ix_buf[ibase++] << 2;
poss[2].x = pos_buf[vbase++];
poss[2].y = pos_buf[vbase  ];
var Ax = poss[1].x - poss[0].x;
var Ay = poss[1].y - poss[0].y;
var Cx = poss[2].x - poss[1].x;
var Cy = poss[2].y - poss[1].y;
var cull = ( (((Ax * Cy) - (Ay * Cx))*culling) < 0);
g.beginPath();
g.strokeStyle = cull ? "#592" : "#0f0";
g.moveTo(poss[0].x, poss[0].y);
g.lineTo(poss[1].x, poss[1].y);
g.lineTo(poss[2].x, poss[2].y);
g.lineTo(poss[0].x, poss[0].y);
g.stroke();
}
}
P3D.drawByIndexBuffer = function(pos_buf, ix_buf, tx_buf, culling, z_clip) {
var w, h;
var color_polygon = !this.texture;
if (this.texture) {
w = this.texture.width;
h = this.texture.height;
}
var g = this.g;
var m = new M22();
if (!culling) culling = 0;
if ((ix_buf.length%3) != 0)
throw "invalid index buffer length!";
var i, ibase, vbase, tbase, poss = [{},{},{}];
var len = ix_buf.length/3;
var uv_0u, uv_0v, uv_1u, uv_1v, uv_2u, uv_2v;
for (i = 0, ibase = 0;i < len;++i)
{
tbase = ix_buf[ibase++] << 1
vbase = tbase << 1;
poss[0].x = pos_buf[vbase++]; uv_0u = tx_buf[tbase++];
poss[0].y = pos_buf[vbase++]; uv_0v = tx_buf[tbase];
if (z_clip && (pos_buf[vbase] < 0 || pos_buf[vbase] > 1)) {ibase += 2; continue;}
tbase = ix_buf[ibase++] << 1
vbase = tbase << 1;
poss[1].x = pos_buf[vbase++]; uv_1u = tx_buf[tbase++];
poss[1].y = pos_buf[vbase++]; uv_1v = tx_buf[tbase];
if (z_clip && (pos_buf[vbase] < 0 || pos_buf[vbase] > 1)) {++ibase; continue;}
tbase = ix_buf[ibase++] << 1
vbase = tbase << 1;
poss[2].x = pos_buf[vbase++]; uv_2u = tx_buf[tbase++];
poss[2].y = pos_buf[vbase++]; uv_2v = tx_buf[tbase];
if (z_clip && (pos_buf[vbase] < 0 || pos_buf[vbase] > 1)) {continue;}
var vAd = [ poss[1].x - poss[0].x , poss[1].y - poss[0].y ];
var vBd = [ poss[2].x - poss[0].x , poss[2].y - poss[0].y ];
var vCd = [ poss[2].x - poss[1].x , poss[2].y - poss[1].y ];
if( (((vAd[0] * vCd[1]) - (vAd[1] * vCd[0]))*culling) < 0)
continue;
if (color_polygon) {
g.fillStyle = uv_0u;
g.beginPath();
g.moveTo(poss[0].x, poss[0].y);
g.lineTo(poss[1].x, poss[1].y);
g.lineTo(poss[2].x, poss[2].y);
g.fill();
continue;
}
var vA = [ uv_1u - uv_0u , uv_1v - uv_0v ];
var vB = [ uv_2u - uv_0u , uv_2v - uv_0v ];
vA[0] *= w;
vA[1] *= h;
vB[0] *= w;
vB[1] *= h;
m._11 = vA[0];
m._12 = vA[1];
m._21 = vB[0];
m._22 = vB[1];
var im = m.getInvert();
if (!im) { continue;}
var a = im._11 * vAd[0] + im._12 * vBd[0];
var b = im._21 * vAd[0] + im._22 * vBd[0];
var c = im._11 * vAd[1] + im._12 * vBd[1];
var d = im._21 * vAd[1] + im._22 * vBd[1];
var wu = uv_0u * w;
var hv = uv_0v * h;
var du = wu * a + hv * b;
var dv = wu * c + hv * d;
g.save();
g.beginPath();
g.moveTo(poss[0].x, poss[0].y);
g.lineTo(poss[1].x, poss[1].y);
g.lineTo(poss[2].x, poss[2].y);
g.clip();
g.transform(a, c, b, d, poss[0].x - du, poss[0].y - dv);
var bx = [wu, wu+vA[0], wu+vB[0]];
var by = [hv, hv+vA[1], hv+vB[1]];
bx.sort(P3D.num_cmp);
by.sort(P3D.num_cmp);
var bw = bx[2] - bx[0];
var bh = by[2] - by[0];
if ((bx[0]+bw) <= (w-1)) bw++;
if ((by[0]+bh) <= (h-1)) bh++;
if (bx[0] >= 1) {bx[0]--; bw++;}
if (by[0] >= 1) {by[0]--; bh++;}
g.drawImage(this.texture, bx[0], by[0], bw, bh, bx[0], by[0], bw, bh);
g.restore();
}
}
function Vec3(_x, _y, _z)
{
this.x = _x || 0;
this.y = _y || 0;
this.z = _z || 0;
}
Vec3.prototype = {
zero: function() {
this.x = this.y = this.z = 0;
},
sub: function(v) {
this.x -= v.x;
this.y -= v.y;
this.z -= v.z;
return this;
},
add: function(v) {
this.x += v.x;
this.y += v.y;
this.z += v.z;
return this;
},
copyFrom: function(v) {
this.x = v.x;
this.y = v.y;
this.z = v.z;
return this;
},
norm:function() {
return Math.sqrt(this.x*this.x + this.y*this.y + this.z*this.z);
},
normalize: function() {
var nrm = Math.sqrt(this.x*this.x + this.y*this.y + this.z*this.z);
if (nrm != 0)
{
this.x /= nrm;
this.y /= nrm;
this.z /= nrm;
}
return this;
},
smul: function(k) {
this.x *= k;
this.y *= k;
this.z *= k;
return this;
},
dpWith: function(v)	{
return this.x*v.x + this.y*v.y + this.z*v.z;
},
cp: function(v, w) {
this.x = (w.y * v.z) - (w.z * v.y);
this.y = (w.z * v.x) - (w.x * v.z);
this.z = (w.x * v.y) - (w.y * v.x);
return this;
},
toString: function() {
return this.x + ", " + this.y + "," + this.z;
}
}
function M44(cpy)
{
if (cpy)
this.copyFrom(cpy);
else {
this.ident();
}
}
M44.prototype = {
ident: function() {
this._12 = this._13 = this._14 = 0;
this._21 =       this._23 = this._24 = 0;
this._31 = this._32 =       this._34 = 0;
this._41 = this._42 = this._43 =       0;
this._11 = this._22 = this._33 = this._44 = 1;
return this;
},
copyFrom: function(m) {
this._11 = m._11;
this._12 = m._12;
this._13 = m._13;
this._14 = m._14;
this._21 = m._21;
this._22 = m._22;
this._23 = m._23;
this._24 = m._24;
this._31 = m._31;
this._32 = m._32;
this._33 = m._33;
this._34 = m._34;
this._41 = m._41;
this._42 = m._42;
this._43 = m._43;
this._44 = m._44;
return this;
},
transVec3: function(out, x, y, z) {
out[0] = x * this._11 + y * this._21 + z * this._31 + this._41;
out[1] = x * this._12 + y * this._22 + z * this._32 + this._42;
out[2] = x * this._13 + y * this._23 + z * this._33 + this._43;
out[3] = x * this._14 + y * this._24 + z * this._34 + this._44;
},
transVec3Rot: function(out, x, y, z) {
out[0] = x * this._11 + y * this._21 + z * this._31;
out[1] = x * this._12 + y * this._22 + z * this._32;
out[2] = x * this._13 + y * this._23 + z * this._33;
},
perspectiveLH: function(vw, vh, z_near, z_far) {
this._11 = 2.0*z_near/vw;
this._12 = 0;
this._13 = 0;
this._14 = 0;
this._21 = 0;
this._22 = 2*z_near/vh;
this._23 = 0;
this._24 = 0;
this._31 = 0;
this._32 = 0;
this._33 = z_far/(z_far-z_near);
this._34 = 1;
this._41 = 0;
this._42 = 0;
this._43 = z_near*z_far/(z_near-z_far);
this._44 = 0;
return this;
},
lookAtLH: function(aUp, aFrom, aAt) {
var aX = new Vec3();
var aY = new Vec3();
var aZ = new Vec3(aAt.x, aAt.y, aAt.z);
aZ.sub(aFrom).normalize();
aX.cp(aUp, aZ).normalize();
aY.cp(aZ, aX);
this._11 = aX.x;  this._12 = aY.x;  this._13 = aZ.x;  this._14 = 0;
this._21 = aX.y;  this._22 = aY.y;  this._23 = aZ.y;  this._24 = 0;
this._31 = aX.z;  this._32 = aY.z;  this._33 = aZ.z;  this._34 = 0;
this._41 = -aFrom.dpWith(aX);
this._42 = -aFrom.dpWith(aY);
this._43 = -aFrom.dpWith(aZ);
this._44 = 1;
return this;
},
mul: function(A, B) {
this._11 = A._11*B._11  +  A._12*B._21  +  A._13*B._31  +  A._14*B._41;
this._12 = A._11*B._12  +  A._12*B._22  +  A._13*B._32  +  A._14*B._42;
this._13 = A._11*B._13  +  A._12*B._23  +  A._13*B._33  +  A._14*B._43;
this._14 = A._11*B._14  +  A._12*B._24  +  A._13*B._34  +  A._14*B._44;
this._21 = A._21*B._11  +  A._22*B._21  +  A._23*B._31  +  A._24*B._41;
this._22 = A._21*B._12  +  A._22*B._22  +  A._23*B._32  +  A._24*B._42;
this._23 = A._21*B._13  +  A._22*B._23  +  A._23*B._33  +  A._24*B._43;
this._24 = A._21*B._14  +  A._22*B._24  +  A._23*B._34  +  A._24*B._44;
this._31 = A._31*B._11  +  A._32*B._21  +  A._33*B._31  +  A._34*B._41;
this._32 = A._31*B._12  +  A._32*B._22  +  A._33*B._32  +  A._34*B._42;
this._33 = A._31*B._13  +  A._32*B._23  +  A._33*B._33  +  A._34*B._43;
this._34 = A._31*B._14  +  A._32*B._24  +  A._33*B._34  +  A._34*B._44;
this._41 = A._41*B._11  +  A._42*B._21  +  A._43*B._31  +  A._44*B._41;
this._42 = A._41*B._12  +  A._42*B._22  +  A._43*B._32  +  A._44*B._42;
this._43 = A._41*B._13  +  A._42*B._23  +  A._43*B._33  +  A._44*B._43;
this._44 = A._41*B._14  +  A._42*B._24  +  A._43*B._34  +  A._44*B._44;
return this;
},
translate: function(x, y, z) {
this._11 = 1;  this._12 = 0;  this._13 = 0;  this._14 = 0;
this._21 = 0;  this._22 = 1;  this._23 = 0;  this._24 = 0;
this._31 = 0;  this._32 = 0;  this._33 = 1;  this._34 = 0;
this._41 = x;  this._42 = y;  this._43 = z;  this._44 = 1;
return this;
},
transpose33: function() {
var t;
t = this._12;
this._12 = this._21;
this._21 = t;
t = this._13;
this._13 = this._31;
this._31 = t;
t = this._23;
this._23 = this._32;
this._32 = t;
return this;
},
glRotate: function(angle, x, y, z) {
var s = Math.sin( angle );
var c = Math.cos( angle );
var xx = x * x;
var yy = y * y;
var zz = z * z;
var xy = x * y;
var yz = y * z;
var zx = z * x;
var xs = x * s;
var ys = y * s;
var zs = z * s;
var one_c = 1.0 - c;
this._11 = (one_c * xx) + c;
this._12 = (one_c * xy) - zs;
this._13 = (one_c * zx) + ys;
this._14 = 0;
this._21 = (one_c * xy) + zs;
this._22 = (one_c * yy) + c;
this._23 = (one_c * yz) - xs;
this._24 = 0;
this._31 = (one_c * zx) - ys;
this._32 = (one_c * yz) + xs;
this._33 = (one_c * zz) + c;
this._34 = 0;
this._41 = 0;
this._42 = 0;
this._43 = 0;
this._44 = 1;
return this;
}
}
function M22()
{
this._11 = 1;
this._12 = 0;
this._21 = 0;
this._22 = 1;
}
M22.prototype.getInvert = function()
{
var out = new M22();
var det = this._11 * this._22 - this._12 * this._21;
if (det > -0.0001 && det < 0.0001)
return null;
out._11 = this._22 / det;
out._22 = this._11 / det;
out._12 = -this._12 / det;
out._21 = -this._21 / det;
return out;
}
m.imageFlip = function(canvas_id, src1, src2, bg_color)
{
this.src = src1;
this.src_back = src2;
this.bg = bg_color || "#000";
this.tex = new Image();
this.tex_back = new Image();
this.points = new Array();
this.mg = false;
this.iTrace = 0;
this.shade = false;
this.uvs = [
[{u:0, v:0},
{u:1, v:0},
{u:1, v:1}],
[{u:0, v:0},
{u:1, v:1},
{u:0, v:1}]
];
this.uvs_back = [
[{u:1, v:0},
{u:0, v:0},
{u:0, v:1}],
[{u:1, v:0},
{u:0, v:1},
{u:1, v:1}]
];
this.IDIntervalRotate;
this.Angle = 0;
this.MaxAngle = 0;
this.Sens = true;
this.Step = 0.3;
this.FL = 600;
this.nbseg = 1;
this.nb = 0;
this.rotate = function()
{
var offset = this.Sens ? this.Step : -this.Step;
if( (this.Sens == true && (this.Angle+offset) >= this.MaxAngle) || (this.Sens == false && (this.Angle+offset) <= this.MaxAngle) )
{
offset = this.MaxAngle - this.Angle;
clearInterval( this.IDIntervalRotate );
this.draw();
return;
}
this.Angle += offset;
for(var i = 0; i < 	this.points.length; i++)
{
this.points[i].rotateY(offset);
}
this.render();
};
this.render = function()
{
P3D.g = this.ctx;
P3D.texture = this.isBackFace() ? this.tex_back : this.tex;
var uvs = false;
if( this.isBackFace() )
{
P3D.texture = this.tex_back;
uvs = this.uvs_back;
}
else
{
P3D.texture = this.tex;
uvs = this.uvs;
}
this.clear();
var poss = [{x:this.points[0].screenX(), y:this.points[0].screenY()},
{x:this.points[1].screenX(), y:this.points[1].screenY()},
{x:this.points[2].screenX(), y:this.points[2].screenY()}
];
P3D.drawTriangle(poss, uvs[0], this.shade);
var poss = [{x:this.points[0].screenX(), y:this.points[0].screenY()},
{x:this.points[2].screenX(), y:this.points[2].screenY()},
{x:this.points[3].screenX(), y:this.points[3].screenY()}
];
P3D.drawTriangle(poss, uvs[1], this.shade);
};
this.draw = function()
{
this.clear();
if( this.isBackFace() )
this.ctx.drawImage( this.tex_back, 0, 0 );
else
this.ctx.drawImage( this.tex, 0, 0 );
};
this.clear = function(f, w, h)
{
this.ctx.beginPath();
this.ctx.clearRect(0, 0, this.width, this.height);
};
this.onLoaded = function()
{
this.nb++;
if( this.nb < 2 ) return;
var x2 = this.tex.width/2;
var y2 = this.tex.height/2;
var cx = -this.width/2;
var cy = -this.height/2;
var cz = 0;
var z = 0;
var P1 = new m.Point3D(-x2, -y2, z, this.FL);
var P2 = new m.Point3D( x2, -y2, z, this.FL);
var P3 = new m.Point3D( x2, y2, z, this.FL);
var P4 = new m.Point3D(-x2, y2, z, this.FL);
this.points = new Array();
this.points.push(P1);
this.points.push(P2);
this.points.push(P3);
this.points.push(P4);
for( var i = 0; i < this.points.length; i++ )
{
this.points[i].setVanishingPoint(this.vpX, this.vpY);
this.points[i].setCenter(cx, cy, cz);
}
this.draw();
_this = this;
mf.Event.addEvent(_this.cv, 'mouseover', function(evt){_this.onMouseOver(evt)});
mf.Event.addEvent(_this.cv, 'mouseout', function(evt){_this.onMouseOut(evt)});
initNeed();
};
this.onMouseOver = function(evt)
{
var cv = mf.Event.getEventElement(evt);
var _this = flips[parseInt(cv.getAttribute('flip_id'))];
clearInterval(_this.IDIntervalRotate);
_this.Sens = true;
_this.MaxAngle = Math.PI;
_this.IDIntervalRotate = setInterval(function(){_this.rotate();},50);
};
this.onMouseOut = function(evt)
{
var cv = mf.Event.getEventElement(evt);
var _this = flips[parseInt(cv.getAttribute('flip_id'))];
clearInterval(_this.IDIntervalRotate);
_this.Sens = false;
_this.MaxAngle = 0;
_this.IDIntervalRotate = setInterval(function(){_this.rotate();},50);
};
this.onClick = function()
{
};
this.isBackFace = function()
{
var pointA = this.points[0];
var pointB = this.points[1];
var pointC = this.points[2];
var cax = pointC.screenX() - pointA.screenX();
var cay = pointC.screenY() - pointA.screenY();
var bcx = pointB.screenX() - pointC.screenX();
var bcy = pointB.screenY() - pointC.screenY();
return cax * bcy > cay * bcx;
};
this.init = function()
{
_this = this;
this.tex.onload = function(){_this.onLoaded()};
this.tex_back.onload = function(){_this.onLoaded()};
this.tex.src = this.src;
this.tex_back.src = this.src_back;
};
this.cv = elements(canvas_id);
if( this.cv && typeof(this.cv.getContext) == 'function')
{
this.ctx = this.cv.getContext('2d');
this.width = this.cv.width;
this.height = this.cv.height;
this.vpX = this.width;
this.vpY = this.height;
_this = this;
_this.tex.onload = function(){_this.onLoaded()};
_this.tex_back.onload = function(){_this.onLoaded()};
_this.tex.src = _this.src;
_this.tex_back.src = _this.src_back;
};
};

