// SITE WIDE JAVASCRIPT AND JQUERY FUNCTIONS
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Runs Flash Video; Formerly known as 'Flash.js'
//
function RunFlash()
{
document.write('\n');
}
//
// Runs Flash Video; Formerly known as 'flash_home_movie.js'
//
function RunVPIHome()
{
document.write('\n');
}
//
// Runs Flash Video; Formerly known as 'VPI_Customers.js'
//
function RunVPICustomers()
{
document.write('\n');
}
//================================================================================================================================//
//
// START PRE-MADE/ONLINE/COPIED/PASTED JAVASCRIPT & JQUERYFUNCTIONS!!!
//
//================================================================================================================================//
//
// Script for 'more' button to expand out information (IE: VPI EMPOWER product pages)
//
/* ================================================================
This copyright notice must be untouched at all times.
The original version of this script and the associated (x)html
is available at http://www.stunicholls.com/various/more.html
Copyright (c) 2005-2007 Stu Nicholls. All rights reserved.
This script and the associated (x)html may be modified in any
way to fit your requirements.
=================================================================== */
clickMenu = function(menu,element,cname) {
var getEls = document.getElementById(menu).getElementsByTagName(element);
for (var i=0; i\n')
document.write('.'+config.contentclass+'{display: none}\n') //generate CSS to hide contents
document.write('<\/style>')
jQuery(document).ready(function($){
ddaccordion.urlparamselect(config.headerclass)
var persistedheaders=ddaccordion.getCookie(config.headerclass)
ddaccordion.contentclassname[config.headerclass]=config.contentclass //remember contentclass name based on headerclass
config.cssclass={collapse: config.toggleclass[0], expand: config.toggleclass[1]} //store expand and contract CSS classes as object properties
config.revealtype=/^(click)|(mouseover)$/i.test(config.revealtype)? config.revealtype.replace(/mouseover/i, "mouseenter") : "click"
config.htmlsetting={location: config.togglehtml[0], collapse: config.togglehtml[1], expand: config.togglehtml[2]} //store HTML settings as object properties
config.oninit=(typeof config.oninit=="undefined")? function(){} : config.oninit //attach custom "oninit" event handler
config.onopenclose=(typeof config.onopenclose=="undefined")? function(){} : config.onopenclose //attach custom "onopenclose" event handler
var lastexpanded={} //object to hold reference to last expanded header and content (jquery objects)
var expandedindices=ddaccordion.urlparamselect(config.headerclass) || ((config.persiststate && persistedheaders!=null)? persistedheaders : config.defaultexpanded)
if (typeof expandedindices=='string') //test for string value (exception is config.defaultexpanded, which is an array)
expandedindices=expandedindices.replace(/c/ig, '').split(',') //transform string value to an array (ie: "c1,c2,c3" becomes [1,2,3]
var $subcontents=$('.'+config["contentclass"])
if (expandedindices.length==1 && expandedindices[0]=="-1") //check for expandedindices value of [-1], indicating persistence is on and no content expanded
expandedindices=[]
if (config["collapseprev"] && expandedindices.length>1) //only allow one content open?
expandedindices=[expandedindices.pop()] //return last array element as an array (for sake of jQuery.inArray())
if (config["onemustopen"] && expandedindices.length==0) //if at least one content should be open at all times and none are, open 1st header
expandedindices=[0]
$('.'+config["headerclass"]).each(function(index){ //loop through all headers
if (/(prefix)|(suffix)/i.test(config.htmlsetting.location) && $(this).html()!=""){ //add a SPAN element to header depending on user setting and if header is a container tag
$('').prependTo(this)
$('').appendTo(this)
}
$(this).attr('headerindex', index+'h') //store position of this header relative to its peers
$subcontents.eq(index).attr('contentindex', index+'c') //store position of this content relative to its peers
var $subcontent=$subcontents.eq(index)
var needle=(typeof expandedindices[0]=="number")? index : index+'' //check for data type within expandedindices array- index should match that type
if (jQuery.inArray(needle, expandedindices)!=-1){ //check for headers that should be expanded automatically (convert index to string first)
if (config.animatedefault==false)
$subcontent.show()
ddaccordion.expandit($(this), $subcontent, config, false) //Last Boolean value sets 'isuseractivated' parameter
lastexpanded={$header:$(this), $content:$subcontent}
} //end check
else{
$subcontent.hide()
config.onopenclose($(this).get(0), parseInt($(this).attr('headerindex')), $subcontent.css('display'), false) //Last Boolean value sets 'isuseractivated' parameter
ddaccordion.transformHeader($(this), config, "collapse")
}
})
$('.'+config["headerclass"]).bind("evt_accordion", function(){ //assign custom event handler that expands/ contacts a header
var $subcontent=$subcontents.eq(parseInt($(this).attr('headerindex'))) //get subcontent that should be expanded/collapsed
if ($subcontent.css('display')=="none"){
ddaccordion.expandit($(this), $subcontent, config, true) //Last Boolean value sets 'isuseractivated' parameter
if (config["collapseprev"] && lastexpanded.$header && $(this).get(0)!=lastexpanded.$header.get(0)){ //collapse previous content?
ddaccordion.collapseit(lastexpanded.$header, lastexpanded.$content, config, true) //Last Boolean value sets 'isuseractivated' parameter
}
lastexpanded={$header:$(this), $content:$subcontent}
}
else if (!config["onemustopen"] || config["onemustopen"] && lastexpanded.$header && $(this).get(0)!=lastexpanded.$header.get(0)){
ddaccordion.collapseit($(this), $subcontent, config, true) //Last Boolean value sets 'isuseractivated' parameter
}
})
$('.'+config["headerclass"]).bind(config.revealtype, function(){
if (config.revealtype=="mouseenter"){
clearTimeout(config.revealdelay)
var headerindex=parseInt($(this).attr("headerindex"))
config.revealdelay=setTimeout(function(){ddaccordion.expandone(config["headerclass"], headerindex)}, config.mouseoverdelay || 0)
}
else{
$(this).trigger("evt_accordion")
return false //cancel default click behavior
}
})
$('.'+config["headerclass"]).bind("mouseleave", function(){
clearTimeout(config.revealdelay)
})
config.oninit($('.'+config["headerclass"]).get(), expandedindices)
$(window).bind('unload', function(){ //clean up and persist on page unload
$('.'+config["headerclass"]).unbind()
var expandedindices=[]
$('.'+config["contentclass"]+":visible").each(function(index){ //get indices of expanded headers
expandedindices.push($(this).attr('contentindex'))
})
if (config.persiststate==true){ //persist state?
expandedindices=(expandedindices.length==0)? '-1c' : expandedindices //No contents expanded, indicate that with dummy '-1c' value?
ddaccordion.setCookie(config.headerclass, expandedindices)
}
})
})
}
}
//
// Script for Top Horizontal Navigation
//
/* ================================================================
This copyright notice must be kept untouched in the stylesheet at
all times.
The original version of this script and the associated (x)html
is available at http://www.stunicholls.com/menu/pro_drop_1.html
Copyright (c) 2005-2007 Stu Nicholls. All rights reserved.
This script and the associated (x)html may be modified in any
way to fit your requirements.
=================================================================== */
stuHover = function() {
var cssRule;
var newSelector;
for (var i = 0; i < document.styleSheets.length; i++)
for (var x = 0; x < document.styleSheets[i].rules.length ; x++)
{
cssRule = document.styleSheets[i].rules[x];
if (cssRule.selectorText.indexOf("LI:hover") != -1)
{
newSelector = cssRule.selectorText.replace(/LI:hover/gi, "LI.iehover");
document.styleSheets[i].addRule(newSelector , cssRule.style.cssText);
}
}
var getElm = document.getElementById("nav").getElementsByTagName("LI");
for (var i=0; i");
$(".listitemimage")
.css("position","relative")
.css("left","-2px")
.css("top","1px");
}
/* ================================================================
Javascript functions for footer tabs (makeactive())
=================================================================== */
function makeactive(tab) {
document.getElementById("tab1").className = "";
document.getElementById("tab2").className = "";
document.getElementById("tab3").className = "";
document.getElementById("tab4").className = "";
document.getElementById("tab"+tab).className = "active";
}
function makeactive_right(tabs) {
document.getElementById("tab1_right").className = "";
document.getElementById("tab2_right").className = "";
document.getElementById("tab3_right").className = "";
//document.getElementById("tab4").className = "";
document.getElementById("tab"+tabs+"_right").className = "active";
}
//================================================================================================================================//
// !!END CUSTOM REGULAR JAVASCRIPT FUNCTIONS
//================================================================================================================================//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//================================================================================================================================//
//
// START ON PAGE LOAD JQUERY & JAVASCRIPT FUNCTIONS!!!!
//
//================================================================================================================================//
$(document).ready(function(){
// New Tabs JQuery
$('#tabvanilla > ul').tabs(); // Footer Left Side
$('#tabvanilla2 > ul').tabs(); // Footer Right Side
$('#tabvanilla_performance > ul').tabs(); // New VPI PERFORMANCE tab layout
// For custom arrow bullet images (to specify which UL class's to use on)
styleList( "whitepapers", "10px", "http://www.vpi-corp.com/Compendium/images/Bullet-blue.png" );
styleList( "case_studies", "10px", "http://www.vpi-corp.com/Compendium/images/Bullet-blue.png" );
styleList( "solutions", "10px", "http://www.vpi-corp.com/Compendium/images/Bullet-blue.png" );
styleList( "roi_guides", "10px", "http://www.vpi-corp.com/Compendium/images/Bullet-blue.png" );
styleList( "webcasts", "10px", "http://www.vpi-corp.com/Compendium/images/Bullet-blue.png" );
styleList( "bullet_arrows", "10px", "http://www.vpi-corp.com/Compendium/images/Bullet-blue.png" );
//NEW CUSTOMER LOGOS SLIDING SCRIPT
var jS = $('.logoImages');
var i = 0;
// Old Function that 'collapses' logos
function do_ticker() {
jS.eq(i).animate({width:'toggle'},1000,function() {
var me = $(this);
setTimeout(function() { me.animate({width:'toggle'},1000,
function() {
i = ++i % jS.length;
do_ticker();
});
},1000); // setTimeout
});
};
do_ticker();
//
// Script for Dynamic Keyword Linking
//
// <-- BEGIN
var content = $("p");
content.each ( function() {
//
// The following section is for our VPI EMPOWER 911 Public Safety Product Suite
// NOTE: the '' in the link is so that the regular 'VPI CAPTURE' and 'VPI CAPTURE PRO' doesn't overwrite the VPI CAPTURE PRO for public safety.
//
$( this ).html($( this ).html().replace(/VPI EMPOWER 911/g, "VPI EMPOWER 911"));
//$( this ).html($( this ).html().replace(/VPI CAPTURE PRO for public safety/g, "VPI CAPTURE PRO"));
//$( this ).html($( this ).html().replace(/VPI CAPTURE for public safety/g, "VPI CAPTURE"));
//$( this ).html($( this ).html().replace(/VPI QUALITY for public safety/g, "VPI QUALITY"));
$( this ).html($( this ).html().replace(/VPI COACHING/g, "VPI COACHING"));
//
// The following section is for our VPI EMPOWER Enterprise Product Suite
//
//$( this ).html($( this ).html().replace(/VPI CAPTURE ESSENTIAL/g, "VPI CAPTURE ESSENTIAL"));
//$( this ).html($( this ).html().replace(/VPI CAPTURE(?! PRO)/g, "VPI CAPTURE"));
//$( this ).html($( this ).html().replace(/VPI CAPTURE PRO/g, "VPI CAPTURE PRO"));
//$( this ).html($( this ).html().replace(/VPI QUALITY PRO/g, "VPI QUALITY PRO"));
//$( this ).html($( this ).html().replace(/VPI QUALITY(?! PRO)/g, "VPI QUALITY"));
$( this ).html($( this ).html().replace(/VPI PERFORMANCE/g, "VPI PERFORMANCE"));
$( this ).html($( this ).html().replace(/VPI EMPOWER(?! 911)/g, "VPI EMPOWER"));
//
// This section is for keyword phrase linking for keyword phrases: call recording, quality assurance, performance management, analytics, Avaya, Cisco, Mitel, Aspect, VPI
//
$( this ).html($( this ).html().replace(/call recording/g, "call recording"));
//$( this ).html($( this ).html().replace(/quality assurance/g, "quality assurance"));
$( this ).html($( this ).html().replace(/performance management/g, "performance management"));
$( this ).html($( this ).html().replace(/analytics/g, "analytics"));
})
// <-- Dynamic Keyword Linking Script END
});
//================================================================================================================================//
// END ON PAGE LOAD JQUERY & JAVASCRIPT FUNCTIONS!!!!
//================================================================================================================================//