// SITE WIDE JAVASCRIPT AND JQUERY FUNCTIONS //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Runs Flash Video; Formerly known as 'Flash.js' // function RunFlash() { document.write('\n'); document.write('\n'); document.write('\n'); document.write('\n'); document.write('\n'); } // // Runs Flash Video; Formerly known as 'flash_home_movie.js' // function RunVPIHome() { document.write('\n'); document.write('\n'); document.write('\n'); document.write('\n'); document.write('\n'); document.write('\n'); document.write('\n'); } // // Runs Flash Video; Formerly known as 'VPI_Customers.js' // function RunVPICustomers() { document.write('\n'); document.write('\n'); document.write('\n'); document.write('\n'); document.write('\n'); 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!!!! //================================================================================================================================//