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(measurements.value!= null){ measurements.value= '[' + measurements.value+ ']'; } if(document.getElementById(item_id+ '_OPTION1').options[document.getElementById(item_id+ '_OPTION1').selectedIndex].value== '') { error= 1; message= message+ "- Size not selected\n"; } 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" : ""); }
