 var appVer = navigator.appVersion.toLowerCase(); var isIE = (appVer.indexOf('msie') != -1)?true:false; var img_orig_height = Array(); var img_orig_width = Array(); var hover_interval; var openHoverboxId; function new_window(url, height, width) { if(!height) height= 520; if(!width) width= 480; var nameW= 'new_window'; newW = window.open(url, nameW, 'height='+height+',width='+width+',scrollbars=1,resizable=1,menubar=1,toolbar=0,status=0,location=0,directories=0,left=10,top=10'); newW.focus(); } function adjust_img_size (img_id, max_width, max_height) { var img_width = 0; var img_height = 0; var imgObj = document.all? document.all[img_id] : document.getElementById(img_id); if(imgObj == 'undefined' || imgObj == null){ return(null); } if((img_orig_width[img_id] != null) && (img_orig_height[img_id] != null)){ img_width = img_orig_width[img_id]; img_height = img_orig_height[img_id]; imgObj.style.width=img_width+'px'; imgObj.style.height=img_height+'px'; } else{ img_width = imgObj.offsetWidth; img_height = imgObj.offsetHeight; } var width_reduction_factor; var height_reduction_factor; var reduction_factor = null; if(img_width > max_width) { width_reduction_factor = max_width / img_width; } if(img_height > max_height) { height_reduction_factor = max_height / img_height; } if(width_reduction_factor && height_reduction_factor){ if(width_reduction_factor < height_reduction_factor){ reduction_factor = width_reduction_factor; } else if ( height_reduction_factor < width_reduction_factor) { reduction_factor = height_reduction_factor; } } else{ if (height_reduction_factor) { reduction_factor = height_reduction_factor; } else if (width_reduction_factor) { reduction_factor = width_reduction_factor; } } if(reduction_factor){ img_width = img_width * reduction_factor; img_height = img_height * reduction_factor; imgObj.style.width = img_width + 'px'; imgObj.style.height = img_height + 'px'; } } function show_hoverbox (item_id, img_src) { if(openHoverboxId){ hide_hoverbox(openHoverboxId); } if (document.images){ var hoverboxObj = document.all? document.all['HOVERBOX_' + item_id] : document.getElementById('HOVERBOX_' + item_id); if (hoverboxObj != 'undefined' && hoverboxObj != null){ hoverboxObj.style.visibility='visible'; openHoverboxId = item_id; } if(img_src == null){ var thumbImgObj = document.all? document.all['IMG_' + item_id] : document.getElementById('IMG_' + item_id); if(thumbImgObj != 'undefined' && thumbImgObj != null){ var zoom_img_array = new Array; var zoom_img_name = thumbImgObj.src; for(var i = 0; i < zoom_img_name.length - 1; i++ ){ zoom_img_array.push (zoom_img_name.charAt(i)); } zoom_img_name = zoom_img_array.join("") + '1'; img_src = zoom_img_name; } } var zoomImgObj = document.all? document.all['ZOOM_' + item_id] : document.getElementById('ZOOM_' + item_id); if(img_src && (zoomImgObj != 'undefined' && zoomImgObj != null)){ zoomImgObj.onLoad = zoom_img_loaded(item_id); zoomImgObj.src = img_src; } } } function zoom_img_loaded (item_id) { hover_interval = setInterval( function(){ get_img_orig_size('ZOOM_' + item_id); limit_zoom_img('ZOOM_' + item_id); reposition_hoverbox(item_id); }, 200); } function hide_hoverbox (item_id) { clearInterval( hover_interval ); var hoverboxObj = document.all? document.all['HOVERBOX_' + item_id] : document.getElementById('HOVERBOX_' + item_id); if (hoverboxObj != 'undefined' && hoverboxObj != null){ hoverboxObj.style.visibility='hidden'; openHoverboxId = null; } } function disable_hoverbox (item_id) { clearInterval( hover_interval ); document.getElementById('HOVERBOX_BD_' + item_id).innerHTML = ' <b>Sorry, no large image available. </b>'; document.getElementById('IMG_' + item_id).onmouseover = null; setTimeout( function(){ hide_hoverbox(item_id); }, 3000 ); } function reposition_hoverbox(item_id) { var hoverboxObj= document.all? document.all['HOVERBOX_' + item_id] : document.getElementById('HOVERBOX_' + item_id); var thumbImgObj = document.all? document.all['IMG_' + item_id] : document.getElementById('IMG_' + item_id); var iebody= (document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body; var winSize = get_window_size(); var scrolledDownPx=document.all? iebody.scrollTop : pageYOffset; var hoverboxOffsetPx = findPosY(hoverboxObj); var thumbPosYpx; if(thumbImgObj != 'undefined' && thumbImgObj != null){ thumbPosYpx = findPosY(thumbImgObj); } else{ thumbPosYpx = 0; } var offset_from_top = thumbPosYpx - scrolledDownPx; var hoverboxHeight = hoverboxObj.offsetHeight; var viewableHeight = winSize.h; if (!isIE) { viewableHeight-=12; } var newTop = null; if( (offset_from_top + hoverboxHeight) > viewableHeight ){ newTop = scrolledDownPx + viewableHeight - hoverboxHeight; if (isIE) { newTop-=20; } } else if(offset_from_top < 0){ newTop = scrolledDownPx; } else if(hoverboxOffsetPx != thumbPosYpx){ var overflowYpx = (thumbPosYpx + hoverboxHeight) - (scrolledDownPx + viewableHeight); if(overflowYpx > 0){ newTop = thumbPosYpx - overflowYpx; } else{ newTop = thumbPosYpx; } } var scrolledLeftPx=document.all? iebody.scrollLeft : pageXOffset; var hoverboxLeftOffsetPx = findPosX(hoverboxObj); var thumbPosXpx; if(thumbImgObj != 'undefined' && thumbImgObj != null){ thumbPosXpx = findPosX(thumbImgObj); } else{ thumbPosXpx = 0; } if (!isIE) { thumbPosXpx -= 10; } var hoverboxWidth = hoverboxObj.offsetWidth; var viewableWidth = winSize.w - 12; if(isIE){ viewableWidth -= 8; } var rightEdgeOfViewPx = scrolledLeftPx + viewableWidth; var hoverboxOverflowXpx = ((hoverboxLeftOffsetPx + hoverboxWidth) - rightEdgeOfViewPx ); var newLeft = null; if(scrolledLeftPx > thumbPosXpx){ newLeft = scrolledLeftPx; } else if (hoverboxOverflowXpx > 0){ newLeft = hoverboxLeftOffsetPx - hoverboxOverflowXpx; if (isIE) { newLeft-=12; } } else if ( hoverboxLeftOffsetPx != thumbPosXpx){ var thumbPosOverflowXpx = (thumbPosXpx + hoverboxWidth) - rightEdgeOfViewPx; if(thumbPosOverflowXpx > 0){ newLeft = thumbPosXpx - thumbPosOverflowXpx; } else{ newLeft = thumbPosXpx; } } if( newLeft < 0 ){ newLeft = 0; } if ( document.all || document.getElementById ){ if(newTop != null){ hoverboxObj.style.top=newTop+"px"; } if(newLeft != null){ hoverboxObj.style.left=newLeft+"px"; } } } function get_img_orig_size(img_id) { if( (img_orig_width[img_id] != null) && (img_orig_height[img_id] != null) ){ return null; } var imgObj = document.all? document.all[img_id] : document.getElementById(img_id); if( (imgObj != 'undefined' && imgObj != null) && (imgObj.offsetWidth != 100) && (imgObj.offsetHeight != 100)){ img_orig_width[img_id] = imgObj.offsetWidth; img_orig_height[img_id] = imgObj.offsetHeight; } } function limit_zoom_img(img_id) { var winSize = get_window_size(); adjust_img_size(img_id, winSize.w - 20, winSize.h - 20); if(isIE){ var iframeObj = document.all? document.all['IE6_IFRAME_' + img_id] : document.getElementById('IE6_IFRAME_' + img_id); if(iframeObj != 'undefined' && iframeObj != null){ var zoomImgObj = document.all? document.all[img_id] : document.getElementById(img_id); iframeObj.style.width = ( zoomImgObj.offsetWidth +4 ) +'px'; iframeObj.style.height = ( zoomImgObj.offsetHeight +4 ) +'px'; } } } function get_window_size() { var w = 600, h = 400; if (parseInt(navigator.appVersion)>3) { if (navigator.appName=="Netscape") { w = window.innerWidth; h = window.innerHeight; } else if (navigator.appName.indexOf("Microsoft")!=-1) { w = document.body.offsetWidth; h = document.body.offsetHeight; } } return { w:w , h:h }; } function validate_item_options(itemID, userOptionRequired) { var error = ''; var message = ''; var measurements = document.getElementById(itemID + '_OPTION4'); measurements.value = null; var meas_error = null; var meas_obj = document.getElementById(itemID + '_HEIGHT'); var have_meas = null; if (meas_obj != 'undefined' && meas_obj != null) { if(meas_obj.value != ''){ measurements.value = measurements.value + 'Height:' + meas_obj.value + ' '; have_meas = 1; } else{ meas_error=1; } } meas_obj = document.getElementById(itemID + '_INSEAM'); if (meas_obj != 'undefined' && meas_obj != null) { if(meas_obj.value != ''){ measurements.value = measurements.value + 'Inseam:' + meas_obj.value + ' '; have_meas = 1; } else{ meas_error=1; } } meas_obj = document.getElementById(itemID + '_WEIGHT'); if (meas_obj != 'undefined' && meas_obj != null) { if(meas_obj.value != ''){ measurements.value = measurements.value + 'Weight:' + meas_obj.value + ' '; have_meas = 1; } else{ meas_error=1; } } meas_obj = document.getElementById(itemID + '_WAIST'); if (meas_obj != 'undefined' && meas_obj != null) { if(meas_obj.value != ''){ measurements.value = measurements.value + 'Waist:' + meas_obj.value + ' '; have_meas = 1; } else{ meas_error=1; } } meas_obj = document.getElementById(itemID + '_CHEST'); if (meas_obj != 'undefined' && meas_obj != null) { if(meas_obj.value != ''){ measurements.value = measurements.value + 'Chest:' + meas_obj.value + ' '; have_meas = 1; } else{ meas_error=1; } } meas_obj = document.getElementById(itemID + '_NECK'); if (meas_obj != 'undefined' && meas_obj != null) { if(meas_obj.value != ''){ measurements.value = measurements.value + 'Neck:' + meas_obj.value + ' '; have_meas = 1; } else{ meas_error=1; } } if(meas_error){ error = 1; message = message + "\t- Measurement information incomplete\n"; } else if( have_meas != null){ measurements.value = '[' + measurements.value + ']'; } var selObj = document.getElementById(itemID + '_OPTION1'); if(selObj != 'undefined' && selObj != null){ if (selObj.options[selObj.selectedIndex].value == '') { error = 1; message = message + "\t- No SIZE selected\n"; } } selObj = document.getElementById(itemID + '_OPTION2'); if(selObj != 'undefined' && selObj != null){ if (selObj.options[selObj.selectedIndex].value == '') { error = 1; message = message + "\t- No COLOR selected\n"; } } if( userOptionRequired ){ selObj = document.getElementById(itemID + '_OPTION3'); if(selObj != 'undefined' && selObj != null){ if (selObj.options[selObj.selectedIndex].value == '') { error = 1; message = message + "\t- No option selected\n"; } } } if(error){ alert('Please correct the following errors:\n\n ' + message); return false; } else{ return true; } } function validate_raceday_rentals(item_id, type) { var error = ''; var message = ''; var measurements = document.getElementById(item_id + '_OPTION2'); measurements.value = null; if (document.getElementById(item_id + '_HEIGHT').value == '') { error = 1; } else{ measurements.value = measurements.value + 'Height:' + document.getElementById(item_id + '_HEIGHT').value + ' '; } if (document.getElementById(item_id + '_INSEAM').value == '') { error = 1; } else{ measurements.value = measurements.value + 'Inseam:' + document.getElementById(item_id + '_INSEAM').value + ' '; } if (document.getElementById(item_id + '_WEIGHT').value == '') { error = 1; } else{ measurements.value = measurements.value + 'Weight:' + document.getElementById(item_id + '_WEIGHT').value + ' '; } if (type == 'WETSUITS'){ if( document.getElementById(item_id + '_WAIST').value == '') { error = 1; } else{ measurements.value = measurements.value + 'Waist:' + document.getElementById(item_id + '_WAIST').value + ' '; } if ( document.getElementById(item_id + '_CHEST').value == '') { error = 1; } else{ measurements.value = measurements.value + 'Chest:' + document.getElementById(item_id + '_CHEST').value + ' '; } if ( document.getElementById(item_id + '_NECK').value == '') { error = 1; } else{ measurements.value = measurements.value + 'Neck:' + document.getElementById(item_id + '_NECK').value + ' '; } } if (error){ message = "- Measurement Information incomplete\n"; } if (type == 'BIKES'){ if(document.getElementById(item_id + '_PEDAL').options[document.getElementById(item_id + '_PEDAL').selectedIndex].value == '') { error = 1; message = message + "- Pedal Type not selected\n"; } else{ measurements.value = measurements.value + 'Pedal:' + document.getElementById(item_id + '_PEDAL').value + ' '; document.getElementById(item_id + '_USER2').value = document.getElementById(item_id + '_PEDAL').value; } if (document.getElementById(item_id + '_OPTION1').options[document.getElementById(item_id + '_OPTION1').selectedIndex].value == '') { error = 1; message = message + "- Size not selected\n"; } } if(measurements.value != null){ measurements.value = '[' + measurements.value + ']'; } var dateSel = document.getElementById(item_id + '_OPTION3'); var otherDateField = document.getElementById(item_id + '_OTHER_DATE'); if(otherDateField != 'undefined' && otherDateField != null){ document.getElementById(item_id + '_OPTION4').value = null; if ( (dateSel.options[dateSel.selectedIndex].value == '') && (otherDateField.value == '') ){ error = 1; message = message + "- Date not selected\n"; } else{ if(otherDateField.value){ document.getElementById(item_id + '_USER1').value = otherDateField.value; document.getElementById(item_id + '_OPTION4').value = otherDateField.value + '||' + document.getElementById(item_id + '_SHIPPING_WEIGHT').value; } else{ document.getElementById(item_id + '_USER1').value = dateSel.options[dateSel.selectedIndex].value; document.getElementById(item_id + '_USER6').value = '2'; } } } else { if (dateSel.options[dateSel.selectedIndex].value == '') { error = 1; message = message + "- Date not selected\n"; } else{ document.getElementById(item_id + '_USER1').value = dateSel.options[dateSel.selectedIndex].value; document.getElementById(item_id + '_USER6').value = '2'; } } if(error){ alert('Please correct the following errors:\n\n ' + message); return false; } else{ return true; } } function findPosX(obj) { var curleft = 0; if(obj.offsetParent){ while(1) { curleft += obj.offsetLeft; if(!obj.offsetParent){ break; } obj = obj.offsetParent; } } else if(obj.x){ curleft += obj.x; } return curleft; } function findPosY(obj) { var curtop = 0; if(obj.offsetParent){ while(1) { curtop += obj.offsetTop; if(!obj.offsetParent){ break; } obj = obj.offsetParent; } } else if(obj.y){ curtop += obj.y; } return curtop; } function GetCookie (name) { var arg = name + "="; var alen = arg.length; var clen = document.cookie.length; var i = 0; while (i < clen){ var j = i + alen; if (document.cookie.substring(i, j) == arg){ return getCookieVal (j); } i = document.cookie.indexOf(" ", i) + 1; if (i == 0) break; } return null; } function getCookieVal (offset) { var endstr = document.cookie.indexOf (";", offset); if (endstr == -1){ endstr = document.cookie.length; } return unescape(document.cookie.substring(offset, endstr)); } function SetCookie (name, value, expDays) { var exp = new Date(); exp.setTime(exp.getTime() + (expDays*24*60*60*1000)); var argv = SetCookie.arguments; var argc = SetCookie.arguments.length; var expires = (argc > 2) ? argv[2] : null; var path = (argc > 3) ? argv[3] : null; var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false; document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + exp.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); } 

