
(function($) {
var _rootUrl = '/', _serverUrl = _rootUrl + 'ezjscore/', _seperator = '@SEPERATOR$';
if ( window.XMLHttpRequest && window.ActiveXObject )
$.ajaxSettings.xhr = function() { try { return new window.ActiveXObject('Microsoft.XMLHTTP'); } catch(e) {} };
function _ez( callArgs, post, callBack )
{
callArgs = callArgs.join !== undefined ? callArgs.join( _seperator ) : callArgs;
var url = _serverUrl + 'call/';
if ( post )
{
if ( post.join !== undefined )
post.push( { 'name': 'ezjscServer_function_arguments', 'value': callArgs } );
else if ( typeof(post) === 'string' )
post += ( post !== '' ? '&' : '' ) + 'ezjscServer_function_arguments=' + callArgs;
else
post['ezjscServer_function_arguments'] = callArgs;
return $.post( url, post, callBack, 'json' );
}
return $.get( url + encodeURIComponent( callArgs ), {}, callBack, 'json' );
};
_ez.url = _serverUrl;
_ez.root_url = _rootUrl;
_ez.seperator = _seperator;
$.ez = _ez;
function _ezLoad( callArgs, post, selector, callBack )
{
callArgs = callArgs.join !== undefined ? callArgs.join( _seperator ) : callArgs;
var url = _serverUrl + 'call/';
if ( post )
post['ezjscServer_function_arguments'] = callArgs;
else
url += encodeURIComponent( callArgs );
return this.load( url + ( selector ? ' ' + selector : '' ), post, callBack );
};
$.fn.ez = _ezLoad;
})(jQuery);
function ezjs_toggleCheckboxes( formname, checkboxname )
{
with( formname )
{
for( var i = 0, l = elements.length; i < l; i++ )
{
if( elements[i].type === 'checkbox' && elements[i].name == checkboxname && elements[i].disabled == false )
{
if( elements[i].checked == true )
{
elements[i].checked = false;
}
else
{
elements[i].checked = true;
}
}
}
}
}
function eZImagePreloader()
{
this.setupEventHandlers( eZImagePreloader.prototype.onImageLoad,
eZImagePreloader.prototype.onImageError,
eZImagePreloader.prototype.onImageAbort );
}
eZImagePreloader.prototype.preloadImageList = function( imageList )
{
this.nImagesCount           = imageList.length;
this.nProcessedImagesCount  = 0;
this.nLoadedImagesCount     = 0;
this.bPreloadDone           = false;
for( var i in imageList )
{
if ( typeof imageList[i] != 'function' )
{
this.preload( imageList[i] );
}
}
}
eZImagePreloader.prototype.preload = function( imageFilePath )
{
var image = new Image;
image.onload  = this.onImageLoadEvent;
image.onerror = this.onImageErrorEvent;
image.onabort = this.onImageAbortEvent;
image.preloader = this;
image.bLoaded = false;
image.bError  = false;
image.bAbort  = false;
image.src = imageFilePath;
}
eZImagePreloader.prototype.setupEventHandlers = function( onLoad, onError, onAbort )
{
this.onImageLoadEvent = onLoad;
this.onImageErrorEvent = onError;
this.onImageAbortEvent = onAbort;
}
eZImagePreloader.prototype.onImageLoad = function()
{
this.bLoaded = true;
this.preloader.nLoadedImagesCount++;
this.preloader.onComplete();
}
eZImagePreloader.prototype.onImageError = function()
{
this.bError = true;
this.preloader.onComplete();
}
eZImagePreloader.prototype.onImageAbort = function()
{
this.bAbort = true;
this.preloader.onComplete();
}
eZImagePreloader.prototype.onComplete = function( imageList )
{
this.nProcessedImagesCount++;
if( this.nProcessedImagesCount == this.nImagesCount )
{
this.bPreloadDone = true;
}
}
function ezjslib_preloadImageList( filepathList )
{
var preloader = new eZImagePreloader();
preloader.preloadImageList( filepathList );
}
var EZPOPMENU_OFFSET = 8;
var EZPOPMENU_SUBTOPOFFSET = 4;
var CurrentSubstituteValues = -1;
var CurrentDisableIDList = [];
var CurrentDisableMenuID = -1;
var CurrentDisabledMenusItems = new Array();
var VisibleMenus = new Array();
var DefaultDisabledMenuItemCSSClass = "menu-item-disabled";
function ezpopmenu_initOffsets( offsetX, offsetY )
{
EZPOPMENU_OFFSET = offsetX;
EZPOPMENU_SUBTOPOFFSET = offsetY;
}
function ezpopupmenu_setSubstituteValue( key, value )
{
if( CurrentSubstituteValues != -1 )
{
CurrentSubstituteValues[key] = value;
}
}
function ezpopmenu_showTopLevel( event, menuID, substituteValues, menuHeader, disableIDList, disableMenuID )
{
if( !document.getElementById( menuID ) ) return;
ezjslib_mouseHandler( event ); // register new mouse position
if ( substituteValues != -1 ) // new topmenu
{
ezpopmenu_hideAll();
CurrentSubstituteValues = substituteValues;
}
if( disableIDList != -1 )
{
CurrentDisableIDList = disableIDList.push !== undefined ? disableIDList : [disableIDList];
}
CurrentDisableMenuID = disableMenuID;
ezpopmenu_doItemSubstitution( menuID, menuHeader );
ezpopmenu_moveTopLevelOnScreen( menuID );
ezpopmenu_makeVisible( menuID );
}
function ezpopmenu_showSubLevel( event, menuID, overItem )
{
if( !document.getElementById( menuID ) ) return;
ezjslib_mouseHandler( event ); // register new mouse position
ezpopmenu_doItemSubstitution( menuID );
ezpopmenu_hideHigher( menuArray[menuID]['depth'] - 1 ); //hide all other submenus
ezpopmenu_moveSubLevelOnScreen( menuID, overItem );
ezpopmenu_makeVisible( menuID );
}
function ezpopmenu_makeVisible( menuID )
{
var styleObject = ezjslib_getStyleObject( menuID, document );
if( styleObject ) styleObject.visibility = 'visible';
VisibleMenus[menuArray[menuID]['depth']] = menuID;
document.getElementById( menuID ).onmouseover = function() { document.onmousedown = null; }
document.getElementById( menuID ).onmouseout = function() { document.onmousedown = ezpopmenu_hideAll; }
document.onmousedown = ezpopmenu_hideAll;
}
function ezpopmenu_doItemSubstitution( menuID, menuHeader )
{
for ( var i in menuArray[menuID]['elements'] )
{
var hrefElement = document.getElementById( i );
if ( !hrefElement )
{
continue;
}
var replaceString = menuArray[menuID]['elements'][i]['url'];
if ( replaceString )
{
replaceString = ezpopup_substituteString( replaceString, CurrentSubstituteValues );
hrefElement.setAttribute( "href", replaceString );
}
var loopingVariable = menuArray[menuID]['elements'][i]['variable'];
if ( loopingVariable )
{
var content = '';
for ( var localVariableIndex in CurrentSubstituteValues[loopingVariable] )
{
var localVariable = CurrentSubstituteValues[loopingVariable][localVariableIndex];
if ( typeof localVariable != 'object' )
continue;
var partialContent = menuArray[menuID]['elements'][i]['content'];
for ( var substItem in CurrentSubstituteValues )
{
if ( typeof CurrentSubstituteValues[substItem] != 'object' && typeof CurrentSubstituteValues[substItem] != 'function' )
{
partialContent = partialContent.replace( substItem, CurrentSubstituteValues[substItem] );
}
}
for ( var localItem in localVariable )
{
partialContent = partialContent.replace( '%' + localItem + '%', localVariable[localItem] );
}
content += partialContent;
}
hrefElement.innerHTML = content;
}
var disabledForElement = false;
if ( typeof( menuArray[menuID]['elements'][i]['disabled_for'] ) != 'undefined' && CurrentDisableIDList )
{
for ( var disI = 0, disL = CurrentDisableIDList.length; disI < disL; disI++ )
{
if ( disabledForElement = menuArray[menuID]['elements'][i]['disabled_for'][ CurrentDisableIDList[disI] ] === 'yes'  )
break;
}
}
if ( typeof( menuArray[menuID]['elements'][i]['disabled_class'] ) != 'undefined' &&
( disabledForElement ||
( CurrentDisableMenuID && hrefElement.id == CurrentDisableMenuID ) ) )
{
CurrentDisabledMenusItems[hrefElement.id] = new Array();
CurrentDisabledMenusItems[hrefElement.id]['className'] = hrefElement.className;
CurrentDisabledMenusItems[hrefElement.id]['href'] = hrefElement.href;
CurrentDisabledMenusItems[hrefElement.id]['onmouseover'] = hrefElement.onmouseover;
hrefElement.className = menuArray[menuID]['elements'][i]['disabled_class'];
hrefElement.setAttribute( "href", '#' );
hrefElement.onmouseover = "";
}
else if ( typeof( menuArray[menuID]['elements'][i]['disabled_class'] ) != 'undefined' &&
hrefElement.className == menuArray[menuID]['elements'][i]['disabled_class'] )
{
if ( typeof( CurrentDisabledMenusItems[hrefElement.id] ) != 'undefined' )
{
hrefElement.className = CurrentDisabledMenusItems[hrefElement.id]['className'];
hrefElement.href = CurrentDisabledMenusItems[hrefElement.id]['href'];
hrefElement.onmouseover = CurrentDisabledMenusItems[hrefElement.id]['onmouseover'];
}
}
}
if ( menuHeader && typeof( menuArray[menuID]['headerID'] ) != 'undefined' )
{
var header = document.getElementById( menuArray[menuID]['headerID'] );
if ( header ) header.innerHTML = menuHeader;
}
}
function ezpopup_substituteString( replaceString, substituteValues )
{
for ( var substItem in substituteValues )
{
if ( typeof substituteValues[substItem] != 'object' && typeof substituteValues[substItem] != 'function' )
{
replaceString = replaceString.replace( substItem, substituteValues[substItem] );
}
}
return replaceString;
}
function ezpopmenu_moveTopLevelOnScreen( menuID )
{
menuElement = document.getElementById( menuID );
screenData = ezjslib_getScreenProperties();
var newX = 0; var newY = 0;
if( (screenData.ScrollY + screenData.Height) < ( MouseY + EZPOPMENU_OFFSET + menuElement.offsetHeight ) )
newY = MouseY - EZPOPMENU_OFFSET - menuElement.offsetHeight;
else if( screenData.ScrollY > EZPOPMENU_OFFSET + MouseY )
newY = screenData.ScrollY;
else
newY = MouseY + EZPOPMENU_OFFSET;
if( (screenData.ScrollX + screenData.Width) < ( MouseX + EZPOPMENU_OFFSET + menuElement.offsetWidth ) )
newX = MouseX - EZPOPMENU_OFFSET - menuElement.offsetWidth;
else if( screenData.ScrollX > EZPOPMENU_OFFSET + MouseX )
newX = screenData.ScrollX;
else
newX = MouseX + EZPOPMENU_OFFSET;
menuElement.style.left = newX + "px";
menuElement.style.top = newY + "px";
}
function ezpopmenu_moveSubLevelOnScreen( menuID, alignItem )
{
menuElement = document.getElementById( menuID );
screenData = ezjslib_getScreenProperties();
var newX = 0; var newY = 0;
alignElement = document.getElementById( alignItem );
parentElement = document.getElementById( VisibleMenus[menuArray[menuID]['depth'] - 1] );
if( alignElement && parentElement )
{
newX = parseInt( parentElement.style.left ) + menuElement.offsetWidth - EZPOPMENU_OFFSET;
newY = parseInt( parentElement.style.top ) + alignElement.offsetTop + EZPOPMENU_SUBTOPOFFSET;
}
if( ( screenData.ScrollY + screenData.Height ) < ( newY + menuElement.offsetHeight ) )
newY = screenData.ScrollY + screenData.Height - menuElement.offsetHeight;
else if( screenData.ScrollY > newY )
newY = screenData.ScrollY;
if( ( screenData.ScrollX + screenData.Width ) < ( newX + menuElement.offsetWidth ) )
{
newX = parseInt( parentElement.style.left ) + EZPOPMENU_OFFSET - menuElement.offsetWidth;
}
menuElement.style.left = newX + "px";
menuElement.style.top = newY + "px";
}
function ezpopmenu_submitForm( formID, customSubstitute )
{
var formElement = document.getElementById( formID );
if( formElement )
{
var children = formElement.childNodes;
for( var i = 0; i < children.length; i++)
{
if( children[i].type == 'hidden' )
{
for ( var substItem in CurrentSubstituteValues )
{
children[i].value = children[i].value.replace( substItem, CurrentSubstituteValues[substItem] );
if ( customSubstitute )
{
for( var j = 0; j < customSubstitute.length; j += 2 )
{
children[i].value = children[i].value.replace( '%'+customSubstitute[j]+'%', customSubstitute[j+1] );
}
}
}
}
}
formElement.submit();
}
}
function ezpopmenu_hide( id )
{
var level = menuArray[id]['depth'];
ezpopmenu_hideHigher( level - 1 );
}
function ezpopmenu_hideAll()
{
document.onmousedown = null;
ezpopmenu_hideHigher( -1 );
}
function ezpopmenu_hideHigher( level )
{
for ( var i = level + 1; i < VisibleMenus.length && VisibleMenus[i] != 'none' ; i++ )
{
var styleObject = ezjslib_getStyleObject( VisibleMenus[i], document );
if( styleObject ) styleObject.visibility = 'hidden';
VisibleMenus[i] = 'none';
}
}
function ezpopmenu_mouseOver( id )
{
ezpopmenu_hideHigher( menuArray[id]['depth'] );
}
function ez_createAArray( flat )
{
var resultArray = new Array();
if( flat.length % 2 != 0 ) return resultArray;
var len = flat.length / 2;
for ( var i = 0; i < flat.length; i += 2 )
{
resultArray[flat[i]] = flat[i+1];
}
return resultArray;
}
function ezpopup_SubstituteAndRedirect( href )
{
for ( var substItem in CurrentSubstituteValues )
{
href = href.replace( substItem, CurrentSubstituteValues[substItem] );
}
location.href = href;
}

