var W3CDOM = (document.createElement && document.getElementsByTagName); var buggyBastard = (navigator.userAgent.indexOf('MSIE') != -1 && navigator.userAgent.indexOf('Mac') != -1) if (W3CDOM) { var tempDIV = document.createElement('div'); tempDIV.className = 'overlibdiv'; } window.onload = initOrchid; window.onunload = exitOrchid; function initOrchid() { if (!W3CDOM) return; initMouseovers(document.getElementsByTagName('img')); initNav(); var login_timeout = ""; var logout_warning_interval = ""; if( login_timeout && logout_warning_interval ) { warn_after = ( login_timeout - logout_warning_interval ) * 1000; setTimeout("startTimer("+warn_after+")", 0); } setNavHeight(); var newFontSize = readCookie('fontsize'); if (newFontSize) changeFont(newFontSize); if (self.init) { init(); } if (self.preloadImages) { preloadImages(); } } function exitOrchid() { if( ofcc_popupshown ) { ofcc_popup.close(); ofcc_popupshown = false; } if( typeof xit == 'function' ) { xit(); } } function initNav() { var x = document.getElementsByTagName('div'); for (var i=0;i 85, // 100 is added to the year. In other words, the // date is assumed to be in the future. // function dateChanged( element, monthyear ) { var value = trim( element.value ); if( value ) { if( monthyear ) { var thedate = value.split( "/" ); if( 2 == thedate.length ) { value = thedate[0] + "/01/" + thedate[1]; } else if( 3 == thedate.length ) { value = thedate[0] + "/01/" + thedate[2]; } else { badValue( element, "Sorry, '" + element.value + "' is not a valid date. Please enter a date in mm/yyyy format." ); return; } } var today = new Date(); var currentyear = today.getFullYear(); var ts = Date.parse( value ); var dt = new Date(ts); var m = dt.getMonth() + 1; var d = dt.getDate(); var y = dt.getFullYear(); if( isNaN(m) || isNaN(d) || isNaN(y) ) { if( monthyear ) { badValue( element, "Sorry, '" + element.value + "' is not a valid date. Please enter a date in mm/yyyy format." ); } else { badValue( element, "Sorry, '" + element.value + "' is not a valid date. Please enter a date in mm/dd/yyyy format." ); } } else { if( currentyear - y > 85 ) { y = y + 100; } if( monthyear ) { element.value = m + "/" + y; } else { element.value = m + "/" + d + "/" + y; } } } } // ...................................................... wordChanged // Checks to make sure the input is a single word. // function wordChanged( element ) { var value = trim( element.value ); if( value ) { if( value.match( /^.*\s.*$/ ) ) { badValue( element, "Sorry, '" + element.value + "' contains a whitespace character. It may not contain any spaces." ); alertShown = false; return; } } } // ...................................................... amountChanged // Checks formatting for changed currency input (US style) // function amountChanged( element ) { var value = trim( element.value ); if( value ) { if( !value.match( /^\d+(\.\d\d)?$/ ) ) { badValue( element, "Sorry, '" + element.value + "' is not a valid amount. Please enter a whole number, such as 78, or a decimal value, such as 27.45" ); alertShown = false; return; } } } // ...................................................... integerChanged // Checks to make sure the input is an integer. // function integerChanged( element ) { var value = trim( element.value ); if( value ) { if( !value.match( /^\d+$/ ) ) { badValue( element, "Sorry, '" + element.value + "' is not a valid number. Please enter a positive integer." ); alertShown = false; return; } } } // ...................................................... checkRange // Checks value of a bounded integer. // function checkRange( element, min, max ) { var value = trim( element.value ); if( value ) { if( !value.match( /^\d+$/ ) ) { badValue( element, "Sorry, '" + element.value + "' is not a valid number. Please enter a positive integer." ); alertShown = false; return; } else if( ( min && value < min ) || ( max && value > max ) ) { badValue( element, "Sorry, " + element.value + " is not a number from " + min + " to " + max + ". Please enter another number." ); alertShown = false; return; } } } // ...................................................... phoneChanged // Checks formatting for changed phone number text input. // function phoneChanged( element ) { var val = trim( element.value ); var phone_format = ""; if( val.length > 0 && phone_format == "us" ) { if( val.match( /^1/ ) ) { val = val.substr( 1 ); } val = val.replace( /\D/g, "" ) if( val.length < 10 ) { badValue( element, "The phone number is garbled or not long enough!" ); alertShown = false; return; } else if( val.length > 10 ) { badValue( element, "The phone number is garbled or too long!" ); alertShown = false; return; } var acode = val.substring(0, 3); var exchange = val.substring(3,6); var number = val.substring(6,10); val = acode + "-" + exchange + "-" + number; } element.value = val; } // ...................................................... emailChanged // Checks formatting for changed email text input. // function emailChanged( element ) { var val = trim( element.value ); if( val.length > 0 ) { parts = val.split( "@" ); if( 2 != parts.length || parts[0].match( /^.*\s.*$/ ) ) { badValue( element, "That doesn't look like a valid email address." ); alertShown = false; return; } domainparts = parts[1].split( "." ); if ( domainparts.length < 2 ) { badValue( element, "That doesn't look like a valid email address." ); alertShown = false; return; } else { for( var i=0; i < domainparts.length; i++ ) { if( i + 1 == domainparts.length ) { if( ! domainparts[i].match( /^[A-Za-z]{2,10}$/ ) ) { badValue( element, "That doesn't look like a valid email address." ); alertShown = false; return; } } else { // Had to spell out letters and numerals because // a hyphen was included and it seemed to break the // use of character ranges. if( ! domainparts[i].match( /^[0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-]+$/ ) ) { badValue( element, "That doesn't look like a valid email address." ); alertShown = false; return; } } } } } return true; } // ...................................................... codeChanged // Checks to make sure the input is a single word, capitalized // and alphanumeric. function codeChanged( element ) { var val = trim( element.value ); if( val.length > 0 ) { if( val.match( /[^0-9A-Z\\_#%-]/ ) ) { badValue( element, "Sorry, '" + element.name + "' must contain only numbers, uppercase letters, or the characters - _ / # % " ); alertShown = false; return; } } element.value = val; } /// *********************************************************** from orchid-js // ...................................................... showPopup // Display a popup. // var ofcc_popupshown = false; var ofcc_popup; function showPopup( display, id, h, w ) { if( ! h ) h = 400; if( ! w ) w = 500; var ratio = "1.1"; if( ratio ) { h = Math.abs(ratio * h) + Math.abs( Math.min( h * .2, 100 ) ); } if( ofcc_popupshown ) { ofcc_popup.resizeTo( w, h ); } ofcc_popup = window.open( "http://www.orchidforchange.com/officials/senatormikemiller.com/ht/display/"+display+"/i/" + id + "/displaytype/popup", "ofcc_popup", "height="+h+",width="+w+",resizable,scrollbars"); ofcc_popup.focus(); } function sizeText(amount) { var fontSize = (document.body.style.fontSize) ? parseFloat(document.body.style.fontSize) : 0.75; var newFontSize = fontSize + (amount/10) + 'em'; changeFont(newFontSize); createCookie('fontsize',newFontSize,30); return false; } function setNavHeight() { if (!W3CDOM) return; var compare = new Array('nav2','main','extra'); for (var i=0;i maxHeight) maxHeight = newHeight; } } for (var i=0;i