/**************************************** | | ScriptReaction | Multi Media Development | | Created by: Kevin Biskaborn | Copyright 2011 ScriptReaction | http://www.scriptreaction.com | ***************************************** | Load Dependencies : None | Run Dependencies : None ****************************************/ var Global = { includePrefix: "", controls: { allowImageAltStripping: true }, preload: function (){ this.addEvent( window, "load", this.postload ); }, postload: function (){ Global.format.pageImages(); FlashFilter.delayGetPrompt(); }, exists: function ( object ){ return ( typeof( object ) == "undefined" ) ? false : true; }, addEvent: function ( object, eventType, functionName ){ if( object.addEventListener ){ object.addEventListener( eventType, functionName, false ); return true; } else if( object.attachEvent ) return object.attachEvent( "on" + eventType, functionName ); else return false; }, attach: { cssLink: function ( fileId ){ output = ""; output += ""; this.toDoc( output ); }, jsLink: function ( fileId ){ output = ""; output += ""; this.toDoc( output ); }, toDoc: function ( output ){ document.writeln( output ); } }, format: { pageImages: function (){ if( Global.exists( BrowserDetector ) && BrowserDetector.isIE() ){ var imageArray = document.images; var whichImage; for( var i = 0; i < imageArray.length; i++ ){ whichImage = imageArray[ i ]; whichImage.galleryimg = "no"; if( Global.controls.allowImageAltStripping ) whichImage.alt = ""; } } } }, display: { goTop: function (){ var y1=y2=y3=0;if(document.documentElement){y1=document.documentElement.scrollTop||0;};if(document.body){y2=document.body.scrollTop||0;}; y3=window.scrollY||0;var y=Math.max(y1,Math.max(y2,y3));window.scrollTo(0,Math.floor(y/1.4));if(y>0){window.setTimeout("Global.display.goTop()",25);}; } }, modify: { setDivContent: function ( divId, content ){ if( document.all ) this.divContent( document.all[ divId ], content ); else this.divContent( document.getElementById( divId ), content ); }, divContent: function ( div, content ){ if( div ) div.innerHTML = content; }, setAlpha: function ( object, opacity ){ opacity = ( opacity == 100 ) ? 99.999 : opacity; object.style.filter = "alpha(opacity:" + opacity + ")"; //ie/win object.style.KHTMLOpacity = opacity/100; //safari<1.2,konqueror object.style.MozOpacity = opacity/100; //older mozilla/firefox object.style.opacity = opacity/100; //safari 1.2,newer firefox/mozilla,css3 } }, email: { count: 0, attach: function ( requestObj ){ var output = ""; var address = this.build( requestObj ); if( address ){ output += ""; output += ""; output += address + ""; } if( output ) Global.attach.toDoc( output ); }, build: function ( requestObj ){ var output = null; var domain = ( typeof( requestObj.d ) == "undefined" ) ? null : requestObj.d.slice( 2 ); var ext = ( typeof( requestObj.e ) == "undefined" ) ? "com" : requestObj.e.slice( 2 ); var user = ( typeof( requestObj.u ) == "undefined" ) ? null : requestObj.u.slice( 2 ); if( domain && user ) this[ "emailObj_" + ++this.count ] = output = user + "@" + domain + "." + ext; return output; }, execute: function (){ var id = parseInt( arguments[ 0 ] ); if( id && id > 0 && this[ "emailObj_" + id ] ) top.location.href = "mailto:" + this[ "emailObj_" + id ]; } } } /******** GLOBAL LAUNCH ********/ Global.preload(); /**************************************** | | ScriptReaction | Created by: Kevin Biskaborn | Copyright 2011 ScriptReaction | http://www.scriptreaction.com | ****************************************/ var JS_Format = { array: { itemExistsInArray: function ( needle, haystackArray ){ var output = false; for( var i = 0; i < haystackArray.length; i++ ){ if( haystackArray[ i ] == needle ){ output = true; break; } } return output; }, unique: { //accepts object arrays by reference //otherwise, use: myArray = addItem( newItem, myArray ); addItem: function ( itemToAdd, haystackArray ){ if( !JS_Format.array.itemExistsInArray( itemToAdd, haystackArray ) ) haystackArray.push( itemToAdd ); return haystackArray; }, removeItem: function ( itemToRemove, haystackArray ){ for( var i = 0; i < haystackArray.length; i++ ){ if( haystackArray[ i ] == itemToRemove ){ haystackArray.splice( i, 1 ); break; } } return haystackArray; } }, clear: function ( inputArray ){ return inputArray.splice( 0, inputArray.length ); }, shuffle: function ( inputArray ){ var output = new Array(); var index; // continue extracting items while the array has more to give while( inputArray.length > 0 ){ // get the next index to be extracted index = JS_Format.number.randomize.fromZero( inputArray.length ); // add the element at that index to the output output.push( inputArray[ index ] ); // remove the element from the array inputArray.splice( index, 1 ); } return output; }, strip: { lastElementIfEmpty:function ( inputArray ){ // get the last index in the array var lastIndex = inputArray.length - 1; // get the last element in the array var lastElement = inputArray[ lastIndex ]; // determine if the element is empty if( lastElement == "" || lastElement == null ) // remove the last element inputArray.splice( lastIndex, 1 ); return inputArray; } } }, string: { trim: { doubleSpace: function ( str ){ return str.replace( /\s\s/, " " ); }, left: function ( str ){ return str.replace( /^\s+/, "" ); }, right: function ( str ){ return str.replace( /\s+$/, "" ); }, full: function ( str ){ return this.right( this.left( str ) ); } }, strip: { htmlTags: function ( inputString ){ return inputString.replace( /(<([^>]+)>)/ig, "" ); } }, condition: { beginsWith: function ( inputString, prefix ){ if( inputString.substring( 0, prefix.length ) == prefix ) return true; else return false; }, endsWith: function ( inputString, suffix ){ if( inputString.substring( inputString.length - suffix.length, inputString.length ) == suffix ) return true; else return false; } }, remove: { prefix: function ( inputString, prefix ){ if( JS_Format.string.condition.beginsWith( inputString, prefix ) ) return inputString.substring( prefix.length, inputString.length ); else return inputString; }, suffix: function ( inputString, suffix ){ if( JS_Format.string.condition.endsWith( inputString, suffix ) ) return inputString.substring( 0, inputString.length - suffix.length ); else return inputString; } }, parseQueryStringToObject: function ( queryString ){ var output = new Object(); //remove the leading query string char queryString = JS_Format.string.remove.prefix( queryString, "?" ); //remove the trailing query string char queryString = JS_Format.string.remove.suffix( queryString, "&" ); //split the query string //into individual data items var dataItemArray = queryString.split( "&" ); //create variable containers var dataItem = ""; var itemArray = Array(); //cycle through all data items for( var i = 0; i < dataItemArray.length; i++ ){ dataItem = dataItemArray[ i ]; //split the data item //into id and value pairs itemArray = dataItem.split( "=" ); //add the item to the output output[ itemArray[ 0 ] ] = itemArray[ 1 ]; } return output; }, parseSpanClassTags: function ( inputString ){ return JS_Format.string.parseClassTags( inputString, "span" ); }, parseClassTags: function ( inputString, tagName ){ var output = ""; // specify the separation delimiters var delimStart = "%%="; var delimEnd = "%%;" // split the input string on all end delimiters // sample elements at this point: className=value var arrayOfEntries = inputString.split( delimEnd ); // check if the last element is empty arrayOfEntries = JS_Format.array.strip.lastElementIfEmpty( arrayOfEntries ); // create loop containers var entry, pairArray, nameOfClass, tagContents; // cycle through all the entries for( var i = 0; i < arrayOfEntries.length; i++ ){ // get the next entry entry = arrayOfEntries[ i ]; // split he entry into a class/value pair pairArray = entry.split( delimStart ); // extract pair values nameOfClass = pairArray[ 0 ]; tagContents = pairArray[ 1 ]; // buld the tag // and add it to the output stream output += "<" + tagName + " class=\"" + nameOfClass + "\">"; output += tagContents; output += ""; } return output; }, escapeURL: function ( inputURL ){ // escape standard chars var output = escape( inputURL ); // replace forwrd slashes return output.replace( /\//gi, "%2F" ); } }, number: { padding: { prefix_zero: function ( inputNumber, size ){ return this.prefix( inputNumber.toString(), "0", size ); }, prefix: function ( numberString, padCharString, size ){ while( numberString.length < size ) numberString = padCharString + numberString; return numberString; } }, randomize: { fromOneToMax: function ( maximum ){ this.fromZero( maximum ) + 1; }, fromZero: function ( maximum ){ return Math.floor( Math.random() * maximum ); } } }, date: { monthCodeArrays: { code3_short: Array( "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec" ) } }, elementClass: { addToElement: function ( elementObject, classToAdd ){ this.set( elementObject, this.add( classToAdd, elementObject.className ) ); }, removeFromElement: function ( elementObject, classToRemove ){ this.set( elementObject, this.remove( classToRemove, elementObject.className ) ); }, add: function ( classToAdd, className ){ classArray = className.split( " " ); if( !JS_Format.array.itemExistsInArray( classToAdd, classArray ) ) classArray.push( classToAdd ); return classArray.join( " " ); }, remove: function ( classToRemove, className ){ classArray = className.split( " " ); for( var i = 0; i < classArray.length; i++ ){ if( classArray[ i ] == classToRemove ){ classArray.splice( i, 1 ); break; } } return classArray.join( " " ); }, set: function ( elementObject, newClassString ){ elementObject.className = newClassString; }, existsOnElement: function ( elementObject, className ){ //create a class exists flag var classExists = false; //verify that the object has a className parameter if( elementObject.className ){ //get an array of all the classes on the element var classArray = elementObject.className.split( " " ); //check whether the requested class exists in the array classExists = JS_Format.array.itemExistsInArray( className, classArray ); } return classExists; } }, elementAlpha: { info: { defaultFadeSpeed: 20 }, empty: function ( objectElement ){ this.set( objectElement, 0 ); }, fill: function ( objectElement ){ this.set( objectElement, 100 ); }, set: function ( objectElement, targetAlpha ){ Global.modify.setAlpha( objectElement, targetAlpha ); }, fadeIn: function ( inputObject ){ inputObject.initialAlpha = 0; inputObject.targetAlpha = 100; inputObject.fadeDirection = 1; var fader = new JS_Format.elementAlpha.activeFader( inputObject ); fader.apply( fader ); }, fadeOut: function ( inputObject ){ inputObject.initialAlpha = 100; inputObject.targetAlpha = 0; inputObject.fadeDirection = -1; var fader = new JS_Format.elementAlpha.activeFader( inputObject ); fader.apply( fader ); }, activeFader: function ( inputObject ){ this.activeObject = inputObject[ "objectElement" ]; this.fadeDirection = inputObject[ "fadeDirection" ]; this.targetAlpha = inputObject[ "targetAlpha" ]; this.initialAlpha = inputObject[ "initialAlpha" ]; this.activeAlpha = this.initialAlpha; this.onFinishMethod = ( !( typeof( inputObject[ "onFinishMethod" ] ) == null ) ) ? inputObject[ "onFinishMethod" ] : ""; //get the fade speed this.fadeSpeed = ( !(typeof( inputObject[ "fadeSpeed" ] ) == null) ) ? inputObject[ "fadeSpeed" ] : JS_Format.elementAlpha.info.defaultFadeSpeed; this.fadeJump = 10; this.updateAlpha = function (){ JS_Format.elementAlpha.set( this.activeObject, this.activeAlpha ); } this.onFinish = function (){ if( typeof( this.onFinishMethod ) != "undefined" && !( this.onFinishMethod == "" ) ) eval( this.onFinishMethod )(); } //set the active object to its initial alpha this.updateAlpha(); this.apply = function ( fadeObject ){ var fadeComplete = false; if( fadeObject.fadeDirection > 0 ){ //FADING IN if( fadeObject.activeAlpha < fadeObject.targetAlpha ) fadeObject.activeAlpha += fadeObject.fadeJump; else { fadeObject.activeAlpha = fadeObject.targetAlpha; fadeComplete = true; } } else { //FADING OUT if( fadeObject.activeAlpha > fadeObject.targetAlpha ) fadeObject.activeAlpha -= fadeObject.fadeJump; else { this.activeAlpha = fadeObject.targetAlpha; fadeComplete = true; } } //update the new alpha fadeObject.updateAlpha(); //check for fade completion if( fadeComplete ) fadeObject.onFinish(); else setTimeout( fadeObject.apply, fadeObject.fadeSpeed, fadeObject ); } } }, divElement: { getById: function ( id ){ return document.getElementById( id ); }, setDisplay_block: function ( divElement ){ this.setStyle.divDisplay( divElement, "block" ); }, setDisplay_none: function ( divElement ){ this.setStyle.divDisplay( divElement, "none" ); }, setDivContent_byDivId: function ( divId, newContents ){ Global.modify.setDivContent( divId, newContents ); }, setDivContent_byDivElement: function ( divElement, newContents ){ Global.modify.divContent( divElement, newContents ); }, getDivContent_byDivElement: function ( divElement ){ return divElement.innerHTML; }, refreshDivContent: function ( divElement ){ this.setDivContent_byDivElement( divElement, this.getDivContent_byDivElement( divElement ) ); }, setStyle: { divDisplay: function( divElement, displayMode ){ divElement.style.display = displayMode; }, divBackgroundImage: function ( divElement, bgImagePath ){ var newBg = ( bgImagePath == "none" ) ? bgImagePath : "url(" + bgImagePath + ")"; divElement.style.backgroundImage = newBg; } }, getAllOnPage_usingClass: function ( classNameString ){ return JS_Format.get.allElementsOnPage_usingClass( "div", classNameString ); } }, file: { get: { extension: function ( filePathString ){ var extStartIndex = filePathString.lastIndexOf( "." ); return filePathString.slice( extStartIndex + 1, filePathString.length ); } } }, get: { arrayOfElementsByTagName: function ( tagName ){ return document.getElementsByTagName( tagName ); }, allElementsOnPage_usingClass: function ( elementTag, classNameString ){ //create output container var outputArray = new Array(); //get all elements with the requested tag name var arrayOfElements = this.arrayOfElementsByTagName( elementTag ); //create element container var element; //cycle through all elements for( var i in arrayOfElements ){ //get the next element element = arrayOfElements[ i ]; //test if the element is using the requested class if( JS_Format.elementClass.existsOnElement( element, classNameString ) ) //add the element to the output array outputArray.push( element ); } return outputArray; } } } /**************************************** | | ScriptReaction | Multi Media Development | | Created by: Kevin Biskaborn | Copyright 2011 ScriptReaction | http://www.scriptreaction.com | ***************************************** | Load Dependencies : None | Run Dependencies : Global{} ****************************************/ var FlashFilter = { controls: { allowDetection: true, detectionApplied: false, flashIsEnabled: false, minPlayerVersion: 8 }, launch: function (){ FlashFilter.fv = [ 0,0 ]; FlashFilter.detectVersion(); this.controls.flashIsEnabled = ( FlashFilter.hasVersion( FlashFilter.controls.minPlayerVersion ) ) ? true : false; this.controls.detectionApplied = true; Global.addEvent( window, "load", this.spawn.apply ); }, flashEnabled: function (){ return this.controls.flashIsEnabled; }, hasVersion: function ( minVersion ) { return ( FlashFilter.fv[ 0 ] > minVersion ) ? true : false; }, delayGetPrompt: function (){ //setTimeout( FlashFilter.showGetPrompt, 1000 ); }, showGetPrompt: function (){ // get the flash box element // this contains the download flash link var boxElement = document.getElementById( "flashbox" ); if( boxElement != null ) boxElement.className = "active"; }, downloadAlert: function (){ var msg = ""; msg += "After installing Flash Player, REFRESH THIS PAGE."; msg += "\n\n"; msg += "If Flash is still not detected (after installing),"; msg += "\n"; msg += "close ALL open browser windows and start the browser again."; msg += "\n\n"; msg += "Click OK to continue getting Flash..."; msg += "\n\n"; alert( msg ); }, //begin FlashFilter.detectVersion() detectVersion: function (){ // this method, detectVersion() // is a ScriptReaction extension of: // Unobtrusive Flash Objects v3.20 // http://www.bobbyvandersluis.com/ufo/ if ( navigator.plugins && typeof navigator.plugins[ "Shockwave Flash" ] == "object" ) { FlashFilter.pluginType = "npapi"; var _d = navigator.plugins[ "Shockwave Flash" ].description; if ( typeof _d != "undefined" ) { _d = _d.replace(/^.*\s+(\S+\s+\S+$)/, "$1"); var _m = parseInt( _d.replace(/^(.*)\..*$/, "$1"), 10 ); var _r = /r/.test( _d ) ? parseInt(_d.replace(/^.*r(.*)$/, "$1"), 10) : 0; FlashFilter.fv = [ _m, _r ]; } } else if ( window.ActiveXObject ) { FlashFilter.pluginType = "ax"; try { // avoid fp 6 crashes var _a = new ActiveXObject( "ShockwaveFlash.ShockwaveFlash.7" ); } catch( e ) { try { var _a = new ActiveXObject( "ShockwaveFlash.ShockwaveFlash.6" ); FlashFilter.fv = [6, 0]; _a.AllowScriptAccess = "always"; // throws if fp < 6.47 } catch( e ) { if ( FlashFilter.fv[0] == 6 ) return; } try { var _a = new ActiveXObject( "ShockwaveFlash.ShockwaveFlash" ); } catch(e) {} } if ( typeof _a == "object" ) { var _d = _a.GetVariable( "$version" ); // bugs in fp 6.21/6.23 if ( typeof _d != "undefined" ) { _d = _d.replace(/^\S+\s+(.*)$/, "$1").split(","); FlashFilter.fv = [ parseInt( _d[0], 10 ), parseInt( _d[2], 10 ) ]; } } } }, //end FlashFilter.detectVersion() attach: function ( requestObject ){ // save the request object this.spawn.requestArray.push( requestObject ); // initialize the class if( this.controls.allowDetection && !this.controls.detectionApplied ) this.launch(); }, spawn: { requestArray: Array(), apply: function (){ if( FlashFilter.flashEnabled() ){ var path = FlashFilter.spawn; var rqArray = path.requestArray; var whichObject; for( var i = 0; i < rqArray.length; i++ ){ whichObject = rqArray[ i ]; if( whichObject.target ) path.populate( whichObject.target, path.buildObject( whichObject, i ) ); } } }, buildObject: function ( inputObject, objectId ){ var output = ""; var allowBuild = ( inputObject.source ) ? true : false; if( allowBuild ){ var source = inputObject.source; var version = ( inputObject.version ) ? inputObject.version : 1; var bground = ( inputObject.bground ) ? inputObject.bground : null; var width = ( inputObject.width ) ? parseInt( inputObject.width ).toString() : "100%"; var height = ( inputObject.height ) ? parseInt( inputObject.height ).toString() : "100%"; var name = ( inputObject.name ) ? inputObject.name : "flashObject_" + objectId; var wmode = ( inputObject.wmode ) ? inputObject.wmode : "transparent"; var setvar = ( inputObject.setvar ) ? inputObject.setvar : null; var param = ( inputObject.param ) ? inputObject.param.toString() : null; setvar = ( param != null && setvar == null ) ? "inputRequest" : setvar; var usevar = ( setvar != null && param != null ) ? true : false; var usebg = ( bground != null ) ? true : false; var folderPrefix = ( inputObject.folderPrefix ) ? inputObject.folderPrefix : ""; var baseFolder = folderPrefix + "assets/flash/"; var baseUrl = Global.includePrefix + baseFolder; var url = baseUrl + "global_loader_v2.swf"; var dynamic = "swf=" + source + "&url=" + baseUrl + "&version=" + version; if( usevar ) dynamic += "&rqvar=" + setvar + "¶m=" + param; output += ''; output += ''; output += ''; output += ''; output += ''; if( usebg ) output += ''; output += ''; output += ''; output += ''; output += ' 6 ) cssUrl = "global_fixIE7"; //else //cssUrl = "global_fixIE6"; Global.attach.cssLink( cssUrl ); } } }, isIE: function (){ return ( this.info.type == "ie" ) ? true : false; } } /******** GLOBAL LAUNCH ********/ BrowserDetector.preload(); /**************************************** | | ScriptReaction | Created by: Kevin Biskaborn | Copyright 2011 ScriptReaction | http://www.scriptreaction.com | ****************************************/ var HeaderNav = { controls: { menuHideDelay: 1500, // delay before menu closes on mouseout dspImageTotal: 18, // number of banner images sideAlphaOff: 50 // side options inactive alpha }, launch: function (){ var mainNavHolder = document.getElementById('hdr_nav'); var mainNavMenus = mainNavHolder.getElementsByTagName('a'); //create container variables HeaderNav.menuNames = new Array(); HeaderNav.menuTotal = 0; for(var menuCount=0; menuCount < mainNavMenus.length; menuCount++){ var whichMenu = mainNavMenus[menuCount]; if(whichMenu.name){ //has sub menu name link (clear name param in tag to disable sub menu) whichMenu.id = 'HeaderNavMenu_' + whichMenu.name; HeaderNav.menuNames.push(whichMenu.name); whichMenu.onmouseover = function (){ HeaderNav.resetMenus(this.id); HeaderNav.menuOver(this.id); window.status = ''; return true; } whichMenu.onmouseout = function (){ HeaderNav.menuOut(); } whichMenu.onclick = function (){ this.blur(); //return false; } with(whichMenu.style){ //cursor = 'default'; } HeaderNav.menuTotal++; } else //no sub menu whichMenu.onmouseover = function (){ HeaderNav.resetMenus(); } } HeaderNav.setItems(); }, resetMenus: function (menuCaller){ for(var menuCount=0; menuCount < HeaderNav.menuTotal; menuCount++){ var menuHolder = x = HeaderNav.menuNames[menuCount]; var whichSubMenu = document.getElementById('sub_' + menuHolder); whichSubMenu.style.visibility = 'hidden'; var whichMenu = document.getElementById('HeaderNavMenu_' + menuHolder); HeaderNav.menuActionMain('out',whichMenu); } }, menuOver: function (x){ var whichSubMenu = x; var id = whichSubMenu.split('_'); var menuId = x = id[1]; //itemName var whichSubMenu = document.getElementById('sub_' + menuId); whichSubMenu.style.visibility = 'visible'; var whichMenu = document.getElementById('HeaderNavMenu_' + menuId); HeaderNav.menuActionMain('over',whichMenu); }, menuOut: function (){ HeaderNav.callTimer(); }, setItems: function (){ for(var menuCount=0; menuCount < HeaderNav.menuTotal; menuCount++){ var menuHolder = HeaderNav.menuNames[menuCount]; var whichSubMenu = document.getElementById('sub_' + menuHolder); var menuItems = whichSubMenu.getElementsByTagName('a'); for(var itemCount=0; itemCount < menuItems.length; itemCount++){ var whichItem = menuItems[itemCount]; whichItem.name = menuHolder; whichItem.onmouseover = function (){ HeaderNav.itemOver(this.name); } whichItem.onmouseout = function (){ HeaderNav.menuOut(); } whichItem.onclick = function (){ this.blur(); HeaderNav.resetMenus(); } } } }, itemOver: function (x){ var whichMenu = document.getElementById('HeaderNavMenu_' + x); HeaderNav.menuActionMain('over',whichMenu); HeaderNav.killTimer(); }, menuActionMain: function (action,object){ if( action == "over" ){ JS_Format.elementClass.addToElement( object, "active" ); HeaderNav.killTimer(); } else { JS_Format.elementClass.removeFromElement( object, "active" ); HeaderNav.callTimer(); } }, callTimer: function (){ HeaderNav.killTimer(); HeaderNav.timer = setTimeout('HeaderNav.resetMenus()', HeaderNav.controls.menuHideDelay); }, killTimer: function (){ if(typeof(HeaderNav.timer != 'undefined')){ clearTimeout(HeaderNav.timer); } } } /**************************************** | | ScriptReaction | Created by: Kevin Biskaborn | Copyright 2011 ScriptReaction | http://www.scriptreaction.com | ****************************************/ var NavTabs = { set: function (action,total,start){ NavTabs.action = action; //action function id NavTabs.total = total; NavTabs.start = start; this.launch(); }, launch: function (){ NavTabs.ck(NavTabs.start); }, menuOn: 0, ck: function (x){ //tab click if(x != NavTabs.menuOn){ NavTabs.menuOn = x; NavTabs.rs(); var thetab = document.getElementById('tab'+x); with(thetab){ with(style){ backgroundColor = '#fff'; color = '#000066'; fontWeight = 'bold'; textDecoration = 'none'; marginTop = '1px'; cursor = 'default'; } blur(); } eval('NavTabs.doAction' + NavTabs.action + '("' + x + '")'); } }, rs: function (){ //tab reset for(var i=1; i <= NavTabs.total; i++){ var thetab = document.getElementById('tab'+i); with(thetab.style){ backgroundColor = ''; color = ''; fontWeight = ''; textDecoration = ''; marginTop = ''; cursor = ''; } var thePage = document.getElementById('tabItem' + i); with(thePage.style){ display = 'none'; } } }, doAction1: function (x){ document.getElementById('tabItem' + x).style.display = 'block'; } } /**************************************** | | ScriptReaction | Created by: Kevin Biskaborn | Copyright 2011 ScriptReaction | http://www.scriptreaction.com | ***************************************** | Load Dependencies : None | Run Dependencies : Global{} ****************************************/ var GridCollection = { activateInlineById: function ( id ){ // this function is the caller STUB for the INLINE IMAGES // located directly on the gallery page GridCollection.activateGroupImage( id, "gridCollectionHolder" ); }, activateGroupImage: function ( id, groupDivId ){ // get all image elements var arrayOfAnchorElements = $( groupDivId ).getElementsByTagName( "a" ); // create an array of images container var arrayOfImages = new Array(); // create loop containers var aTag, imageArray; // cycle through all anchors for( var i = 0; i < arrayOfAnchorElements.length; i++ ){ // get the next anchor tag aTag = arrayOfAnchorElements[ i ]; // create an image array container imageArray = new Array(); // add the image properties imageArray.push( aTag.href ); imageArray.push( GridCollection.buildImageCaption( aTag.title ) ); // add the image to the collection arrayOfImages.push( imageArray ); } // get the start image index var startImageIndex = id - 1; // specify the options object var optionsObject = { loop: true }; // activate the slimbox component Slimbox.open( arrayOfImages, startImageIndex, optionsObject ); }, buildImageCaption: function ( titleTag ){ return JS_Format.string.parseSpanClassTags( titleTag ); } } /**************************************** | | ScriptReaction | Created by: Kevin Biskaborn | Copyright 2011 ScriptReaction | http://www.scriptreaction.com | ****************************************/ var SideColumnGrid = { gridBlockCount: 4, launch: function (){ // launch function disabled - multiple instances of the block activations in use (November 2011) /*var containerElement = document.getElementById( "sideColumnServiceGrid" ); // verfiy the container exists on the current page if( containerElement ){ // cycle through the number of grid blocks for( var i = 0; i < this.gridBlockCount; ++i ){ var linkedElement = document.getElementById( "sideColumnLinkElement_" + ( i + 1 ) ); // check if the linked element exists if( linkedElement ){ linkedElement.onmouseover = function (){ SideColumnGrid.toggleGridBlockByLinkElement( this.id, 1 ); } linkedElement.onmouseout = function (){ SideColumnGrid.toggleGridBlockByLinkElement( this.id, 0 ); } } } }*/ }, toggleGridBlockByLinkElement: function ( linkElementId, isActive ){ SideColumnGrid.toggleGridBlockById( linkElementId.slice( -1 ), isActive ); }, toggleGridBlockById: function ( id, isActive ){ var gridElement = document.getElementById( "serviceGridBlock_" + id ); // verify that the element exists if( gridElement ){ if( isActive ) JS_Format.elementClass.addToElement( gridElement, "active" ); else JS_Format.elementClass.removeFromElement( gridElement, "active" ); } } } /**************************************** | | ScriptReaction | Created by: Kevin Biskaborn | Copyright 2011 ScriptReaction | http://www.scriptreaction.com | ****************************************/ var PortfolioNavWeb = { launch: function ( inputObject ){ // extract incoming properties var totalElements = inputObject.total; var activeElementIndex = inputObject.active; PortfolioNavWeb.getPageCaller(); var PortfolioNavWebHolder = document.getElementById('bdy_opt'); var PortfolioNavWebItems = PortfolioNavWebHolder.getElementsByTagName('li'); var PortfolioNavWebHrefs = PortfolioNavWebHolder.getElementsByTagName('a'); var PortfolioNavWebIcons = PortfolioNavWebHolder.getElementsByTagName('img'); PortfolioNavWeb.itemNames = new Array(); for(var itemCount=0; itemCount < PortfolioNavWebItems.length; itemCount++){ var whichItem = PortfolioNavWebItems[itemCount]; var whichHref = PortfolioNavWebHrefs[itemCount]; whichItem.id = 'PortfolioNavWebItem_' + whichHref.name; whichHref.id = 'PortfolioNavWebHref_' + whichHref.name; PortfolioNavWeb.itemNames.push(whichHref.name); whichItem.onclick = function (){ PortfolioNavWeb.itemClick(this.id); this.blur(); } whichItem.onmouseover = function (){ window.status = ''; return true; } whichHref.onclick = function (){ return false; } var whichIcon = PortfolioNavWebIcons[itemCount]; whichIcon.id = 'PortfolioNavWebIcon_' + whichHref.name; } PortfolioNavWeb.total = PortfolioNavWeb.itemNames.length; // determine the initial index var startIndex = ( activeElementIndex < 0 ) ? PortfolioNavWeb.total - 1 : activeElementIndex; PortfolioNavWeb.starter = PortfolioNavWeb.itemNames[ startIndex ]; Global.addEvent(window, 'load', PortfolioNavWeb.start); }, getPageCaller: function (){ var x = location.href.toString().split('/'); PortfolioNavWeb.caller = x[x.length - 2]; }, start: function (){ if(PortfolioNavWeb.isOn == 0){ //no option selected yet PortfolioNavWeb.itemClick('PortfolioNavWebItem_' + PortfolioNavWeb.starter); } }, isOn: 0, itemClick: function (x){ if(x != PortfolioNavWeb.isOn){ PortfolioNavWeb.isOn = x; PortfolioNavWeb.resetItems(); var array_id = x.split('_'); //x[0]='liNav', x[1]=li id; var theItem = document.getElementById('PortfolioNavWebHref_' + array_id[1]); var bgId = (PortfolioNavWeb.caller == 'web_sites') ? '3' : '6' ; with(theItem){ with(style){ backgroundColor = "#cc0000"; backgroundImage = 'url(assets/gfx/bdy_bar' + bgId + '.gif)'; borderColor = '#fff' color = '#fff'; cursor = 'default'; } blur(); } var theIcon = document.getElementById('PortfolioNavWebIcon_' + array_id[1]); with(theIcon.style){ borderColor = '#fff'; } var thePage = document.getElementById('item_' + array_id[1]); with(thePage.style){ display = 'block'; } } }, resetItems: function (){ for(var i=0; i < PortfolioNavWeb.total; i++){ var theItem = document.getElementById('PortfolioNavWebHref_' + PortfolioNavWeb.itemNames[i]); with(theItem.style){ backgroundColor = ""; backgroundImage = ''; borderColor = '#000066'; color = ''; cursor = 'pointer'; } var theIcon = document.getElementById('PortfolioNavWebIcon_' + PortfolioNavWeb.itemNames[i]); with(theIcon.style){ borderColor = ''; } var thePage = document.getElementById('item_' + PortfolioNavWeb.itemNames[i]); with(thePage.style){ display = 'none'; } } } } /**************************************** | | ScriptReaction | Created by: Kevin Biskaborn | Copyright 2011 ScriptReaction | http://www.scriptreaction.com | ****************************************/ var PortfolioNavSoftware = { versions: { regattadata_latest: '1.3', monthmaker_latest: '1.0.1' }, ask: function (){ var msg = 'ScriptReaction.com\n'; msg += 'Software Download: ' + PortfolioNavSoftware._display + '™ v' + PortfolioNavSoftware._version + '\n\n\n'; msg += 'TERMS OF DOWNLOAD:\n\n'; msg += 'You agree that this program is provided as-is, without warranty of any kind (either express or implied) including, without limitation, any implied warranty of merchantability and fitness for a particular purpose, and any warranty of non infringement. In no event shall ScriptReaction, or anyone involved with this software, be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of the program, even if advised of the possibility of such damage.'; msg += '\n\n\nBy clicking OK, you accept these terms of download.\n'; release = confirm(msg); if(release){ return true; }else{ return false; } }, get: function (id,version){ switch(id) { case 'rgdt': PortfolioNavSoftware._display = 'regattaDATA'; PortfolioNavSoftware._name = 'regattadata'; break; case 'mnmk': PortfolioNavSoftware._display = 'monthMAKER'; PortfolioNavSoftware._name = 'monthmaker'; break; } PortfolioNavSoftware._version = (version == 'latest') ? PortfolioNavSoftware.versions[PortfolioNavSoftware._name + '_latest'] : version; if(PortfolioNavSoftware.ask()){ PortfolioNavSoftware.download(); } }, download: function (){ location.href = 'portfolio/software/downloads/srx_' + PortfolioNavSoftware._name + '_v' + PortfolioNavSoftware._version + '.exe'; } } /**************************************** | | ScriptReaction | Created by: Kevin Biskaborn | Copyright 2011 ScriptReaction | http://www.scriptreaction.com | ****************************************/ var FormHandler = { launch: function ( formId ){ FormHandler.formId = formId; FormHandler.provStatError = 0; //create containters FormHandler.fields = new Array(); FormHandler.addFields = new Array(); //success if(FormHandler.fieldError == 'submitted'){ var form = FormHandler.formId; var success = 'Thanks for taking the time to contact ScriptReaction, ' + FormHandler.userName + '.
'; success+= ''; success+= 'Your information has been successfully submitted.

'; if(form == 'dataForm_gi'){ //general inquires success+= 'ScriptReaction will respond to you as soon as possible.'; } if(form == 'dataForm_rq'){ //request quote success+= 'Please allow 2-3 business days for ScriptReaction to process your quote request.'; } if(form == 'dataForm_fb'){ //feedback success+= 'ScriptReaction appreciates your time and comments. We will definitely take the time to consider your feedback.'; } success+= "

Check out ScriptReaction's Portfolio...

"; success+= "

Go to the ScriptReaction Home Page...

"; Global.modify.setDivContent('bdy_cnt',success); return; } //check for field error if(FormHandler.fieldError > ''){ var error = FormHandler.fieldError; if(error == 'locProvince'){ FormHandler.unlockCountry('Canada'); FormHandler.provStatError = 1; }else if(error == 'locState'){ FormHandler.unlockCountry('United States of America'); FormHandler.provStatError = 1; } var errorField = document.getElementById('fieldCtr_' + error); errorField.className = 'hasError'; var errorText = document.getElementById('e_' + error); errorText.style.display = 'block'; Global.modify.setDivContent('bdy_txt',''); } //check for previous submit if(FormHandler.fieldVars > ''){ var returnArray = FormHandler.fieldVars.split('&'); returnArray.splice(returnArray.length-1,1); for(var itemCount=0; itemCount < returnArray.length; itemCount++){ var whichItem = returnArray[itemCount]; var itemParam = whichItem.split('='); var itemField = itemParam[0]; var itemValue = itemParam[1]; FormHandler['returnVar_' + itemField] = itemValue; } } var formHolder = document.getElementById('bdy_cnt'); var formTypes = new Array('input','select','textarea'); for(var typeCount=0; typeCount < formTypes.length; typeCount++){ var whichType = formTypes[typeCount]; this['formType_'+whichType] = formHolder.getElementsByTagName(whichType); var whichTypeArray = this['formType_'+whichType]; for(var itemCount=0; itemCount ''){ if(handle == 'required' || handle =='optional'){ FormHandler.fields.push([fieldId,whichType,handle]); } } var hasReturn = FormHandler['returnVar_' + fieldId]; if(typeof(hasReturn) != 'undefined'){ if(hasReturn > ''){ document[FormHandler.formId][fieldId].value = unescape(hasReturn); if(fieldId == 'locCountry' && !FormHandler.provStatError){ FormHandler.unlockCountry(); } } } } } if(!FormHandler.provStatError){ var x = document[FormHandler.formId].locCountry.value; if(x != ''){ FormHandler.unlockCountry(x); } } }, doSubmit: function (){ for(var addCount=0; addCount < FormHandler.addFields.length; addCount++){ var whichAdd = FormHandler.addFields[addCount]; if(whichAdd > ''){ FormHandler.fields.push(whichAdd); } } var returnValues = ''; for(var fieldCount=0; fieldCount < FormHandler.fields.length; fieldCount++){ var whichField = FormHandler.fields[fieldCount]; var fieldId = whichField[0]; whichField[3] = escape(document[FormHandler.formId][fieldId].value); returnValues += fieldId.toString() + '=' + whichField[3] + '&'; } document[FormHandler.formId].fieldParams.value = FormHandler.fields.toString(); document[FormHandler.formId].fieldValues.value = returnValues; if(document[FormHandler.formId].formSession.value == 0){ document[FormHandler.formId].formSession.value = Math.ceil(Math.random()*999999999); } }, doReset: function (){ if(FormHandler.fieldError > ''){ var error = FormHandler.fieldError; var errorField = document.getElementById('fieldCtr_' + error); errorField.className = ''; var errorText = document.getElementById('e_' + error); errorText.style.visibility = 'hidden'; } FormHandler.unlockCountry('none'); }, unlockCountry: function (x){ var addHandle = 'required'; switch(FormHandler.formId){ case 'dataForm_gi': //general inquiries addHandle = 'required'; break; case 'dataForm_fb': //feedback addHandle = 'optional'; break; } var handleDsp = FormHandler.getLocHandle(); var area1 = 'area_provState'; var area2 = 'area_postZip'; FormHandler.countryArea1_disabled = '
Province/State' + handleDsp + '
'; FormHandler.countryArea2_disalbed = '
Postal Code/ZIP' + handleDsp + '
'; if(typeof(x)!='undefined'){ if(x > '') var condition = x; }else{ var condition = document[FormHandler.formId].locCountry.value; } switch(condition){ case 'Canada': Global.modify.setDivContent(area1,FormHandler.getLocProv()); Global.modify.setDivContent(area2,FormHandler.getLocPostZip('post')); FormHandler.addFields[0] = ['locProvince','input',addHandle]; FormHandler.addFields[1] = ['locPostal','input','optional']; break; case 'United States of America': Global.modify.setDivContent(area1,FormHandler.getLocState()); Global.modify.setDivContent(area2,FormHandler.getLocPostZip('zip')); FormHandler.addFields[0] = ['locState','input',addHandle]; FormHandler.addFields[1] = ['locZip','input','optional']; break; case 'Other': Global.modify.setDivContent(area1,''); Global.modify.setDivContent(area2,''); FormHandler.addFields[0] = ''; FormHandler.addFields[1] = ''; break; default: Global.modify.setDivContent(area1,FormHandler.countryArea1_disabled); Global.modify.setDivContent(area2,FormHandler.countryArea2_disalbed); FormHandler.addFields[0] = ''; FormHandler.addFields[1] = ''; break; } }, getLocHandle: function (){ var handleDsp = '*'; switch(FormHandler.formId){ case 'dataForm_gi': //general inquiries handleDsp = '*'; break; case 'dataForm_fb': //feedback handleDsp = ' '; break; } return handleDsp; }, getLocProv: function (){ var x = ''; x+= ''; x+= ''; x+= ''; x+= ''; x+= '
Province' + FormHandler.getLocHandle() + ''; x+= ''; x+= '
'; return x; }, getLocState: function (){ var x = ''; x+= ''; x+= ''; x+= ''; x+= ''; x+= '
State' + FormHandler.getLocHandle() + ''; x+= ''; x+= '
'; return x; }, getLocPostZip: function (x){ switch(x){ case 'post': var x1 = 'Postal Code'; var x2 = 'locPostal'; var x3 = '6'; break; case 'zip': var x1 = 'ZIP'; var x2 = 'locZip'; var x3 = '5'; break; } var y = ''; y+= ''; y+= ''; y+= '
' + x1 + ' 
'; return y; }, clear: function (){ if( confirm( "**** Confirm Form Reset ****\n All data entered in the fields will be erased !\n\nProceed with reset ?\n" ) ) top.location.href = top.location; } } /**************************************** | | ScriptReaction | Created by: Kevin Biskaborn | Copyright 2011 ScriptReaction | http://www.scriptreaction.com | ****************************************/ var ExternalPlugins = { facebook: { getLikeButtonEmbed_global: function (){ ExternalPlugins.facebook.getLikeButtonEmbed_custom( "http://www.scriptreaction.com/" ); }, getLikeButtonEmbed_custom: function ( requestURL ){ ExternalPlugins.facebook.getLikeButtonEmbed( JS_Format.string.escapeURL( requestURL ) ); }, getLikeButtonEmbed: function ( escapedURL ){ var output = '