/*======================================================================== * * JAVASCRIPTS.JS * * russianbare/enature Javascript Library * * ©2008 Good Karma! * * Remember, stealing other people's JavaScript makes baby Jesus cry. * * *======================================================================*/ //---------------------------------------------------- // Simple Popup Window // Custom Size, URL, Resize and Scrollbar jargon // Also option to have window centered, y'all! //---------------------------------------------------- function openWindow(url, width, height, is_scroll, is_resize, is_centered) { var pHoriz; var top; var left; if (is_centered == 1) { if(window.screen) { left = (screen.width - width) / 2; top = (screen.height - height) / 2; } } else { left = 100; top = 100; } if(!pHoriz || pHoriz.closed) { pHoriz = window.open(url,'','width='+ width +', height='+ height +', left='+ left +', top='+ top +', screenX='+ left +', screenY='+ top +', scrollbars='+ is_scroll +', resizable= '+ is_resize +', menubar=no, toolbar=no'); } else { pHoriz.focus(); } } //----------------------------------------------- // Going Somewhere? //----------------------------------------------- function boink(url) { document.location.href = url; } //----------------------------------------------- // Jump to Page N of N //----------------------------------------------- function multi_page_jump( url_bit, total_posts, per_page ) { pages = 1; cur_st = parseInt(""); cur_page = 1; if ( total_posts % per_page == 0 ) { pages = total_posts / per_page; } else { pages = Math.ceil( total_posts / per_page ); } msg = "Please enter a page number to jump to between 1 and" + " " + pages; if ( cur_st > 0 ) { cur_page = cur_st / per_page; cur_page = cur_page -1; } show_page = 1; if ( cur_page < pages ) { show_page = cur_page + 1; } if ( cur_page >= pages ) { show_page = cur_page - 1; } else { show_page = cur_page + 1; } userPage = prompt( msg, show_page ); if ( userPage > 0 ) { window.location = url_bit + "&p=" + userPage; } } //----------------------------------------------- // Toggle Visibility of overlay menu //----------------------------------------------- function toggle_menu(id) { var itm = null; if (document.getElementById) { itm = document.getElementById(id); } else if (document.all) { itm = document.all[id]; } else if (document.layers) { itm = document.layers[id]; } if (!itm) { // do nothing } else if (itm.style) { if (itm.style.display == "none") { itm.style.display = "inline"; } else { itm.style.display = "none"; } } else { itm.visibility = "show"; } } //------------------------------------------------- // Toggle Visibility of element //------------------------------------------------- function showField(id) { var itm = null; if (document.getElementById) { itm = document.getElementById(id); } else if (document.all) { itm = document.all[id]; } else if (document.layers) { itm = document.layers[id]; } if (!itm) { // do nothing } else if (itm.style) { if (itm.style.display == "none") { itm.style.display = ""; } else { itm.style.display = ""; } } else { itm.visibility = "show"; } } //------------------------------------------------- // Toggle Visibility ALIAS //------------------------------------------------- function hideField(id) { showField(id); } //---------------------------------------------------- // Category Menu Functions //---------------------------------------------------- function show_bmenu() { var menu = document.getElementById('BMENU'); if (menu.style.display == 'none') { menu.style.display = 'inline'; //setTimeout("hide_bmenu()", 5000); } else { return; } } function hide_bmenu() { var menu = document.getElementById('BMENU'); if (menu.style.display == 'inline') { menu.style.display = 'none'; force_bmenu_hide(); } else { return; } } function keep_bmenu() { setTimeout("hide_bmenu()", 50000); } function force_bmenu_hide() { document.getElementById('BMENU').style.display = 'none'; } //---------------------------------------------------- // Confirmation Popup box - direct to URL if true, // Alert box if false, saying all is well //---------------------------------------------------- function confirm_action(url, message) { var desc var agree = confirm (message); if (agree) { window.location.href = url +'&js_confirm=1'; } else { url.blur(); return false; } } //----------------------------------------------- // Anti-Robot Shopping Cart Link //----------------------------------------------- var addcart_load = ""; function add_cart(pid,format,conf) { var c = ''; var notify_div = document.getElementById('IC_'+ pid); notify_div.innerHTML = addcart_load; update_shopping_cart("/en/cart/add:" + pid + ":" + format + ":a/"+ conf, pid); if (conf == '?confirm=1') { destroy_overlay(); } } //----------------------------------------------- // Remove from Cart //----------------------------------------------- function remove_from_cart(cart_id, pid) { var notify_div = document.getElementById('IC_'+ pid); notify_div.innerHTML = addcart_load; update_shopping_cart("/en/cart/remove:" + cart_id, pid); } function destroy_overlay() { document.getElementById('overlay').style.display = "none"; document.getElementById('overlay_message').style.display = "none"; } //--------------------------------------------------------- // It assigns toggle options on or off... // It does this whenever it's told. //--------------------------------------------------------- function tcheck(source, remote, opt) { var zfield; //var thisForm = document.mainform.elements[source]; var thisForm = source; for (var i = 0; i < thisForm.options.length; i++) { if (thisForm.options[i].value == opt) { if(thisForm.options[i].selected == true) { toggleFormElement(remote, 'on'); } else { toggleFormElement(remote, 'off'); setSelectOff(remote); } } } } //---------------------------------------------------------- // It toggles the boxes - one or ten // Or else it gets the hose again... //---------------------------------------------------------- function setSelectOptions(select, tf, skip) { var selectObject = document.mainform.elements[select]; var selectCount = selectObject.length; for (var i = skip; i < selectCount; i++) { if (tf == 'on') { selectObject.options[i].selected = true; } else { selectObject.options[i].selected = false; } } return true; } //----------------------------------------------------------------- // Toggle form elements from disabled to enabled and vice/versa; // Swap out element background colors for visuals, since we use // CSS designer form display properties :) //----------------------------------------------------------------- function toggleFormElement(it, state) { var bcolor = '#EBE6DE'; var tcolor = '#000000'; var tform = document.getElementById(it); if (document.all || document.getElementById) { if (state == 'on') { tform.disabled = false; tform.style.color = tcolor; tform.style.backgroundColor = bcolor; } else { tform.disabled = true; tform.style.color = ''; tform.style.backgroundColor = ''; } } } //------------------------------------------------------------------ // Toggle Select Menu multiple selectability based on search mode // Yes, Precious we'll get the hose! //------------------------------------------------------------------ function toggleSelectPerms(mode, the_select) { var selectCount = the_select.length; if (mode == 'strict') { the_select.multiple = false; } else { the_select.multiple = true; } return false; } //------------------------------------------------------------------ // Set value of ID'ed element //------------------------------------------------------------------ function setval(el, value) { element = document.getElementById(el); element.value = value; } function addEngine() { if ((typeof window.sidebar == "object") && (typeof window.sidebar.addSearchEngine == "function")) { window.sidebar.addSearchEngine( "http://www.russianbare.com/lib/searchbar/enaturenet.src", "http://www.russianbare.com/lib/searchbar/enaturenet.png", 'Enature.net', 'DVD & Video'); } else { alert("Netscape 6 or Mozilla is needed to install a sherlock plugin"); } } //------------------------------------------------------------------ // Check Search Box //------------------------------------------------------------------ var scherr = ""; function chksearch(form) { var box = form.query; if (box.value == '' || box.value.length < 3) { if (document.getElementById('swarn').style.display == 'none') { document.getElementById('swarn_msg').innerHTML = 'Query must be at least 3 characters in length.'; Slide('swarn',{duration:.5}).down(); scherr = 1; } return false; } else if (box.value == 'sex') { if (document.getElementById('swarn').style.display == 'none') { document.getElementById('swarn_msg').innerHTML = 'No sex here, this is a naturist site. Try again.'; document.getElementById('sbq').value = ''; Slide('swarn',{duration:.5}).down(); scherr = 1; } return false; } } function errhide() { if (scherr == 1) { document.getElementById('swarn').style.display = 'none'; scherr = 0; open_div = '' } } //----------------------------------------------------------------- // Animate DIV Toggle //----------------------------------------------------------------- var content_height = 200; var slide_time = 250.0; var open_div = ''; function toggle_slide(div_id, slide_time_override, content_height_override) { if(open_div == div_id) { div_id = ''; } if (content_height_override > 0 ) { content_height = content_height_override; } if (slide_time_override > 0 ) { slide_time = slide_time_override; } setTimeout("slide_it(" + new Date().getTime() + "," + slide_time + ",'" + open_div + "','" + div_id + "')", 33); open_div = div_id; } function slide_it(last_tick, time_left, close_id, open_id) { var current_tick = new Date().getTime(); var elapsed_ticks = current_tick - last_tick; var opening = (open_id == '') ? null : document.getElementById(open_id); var closing = (close_id == '') ? null : document.getElementById(close_id); if (time_left <= elapsed_ticks) { if (opening != null) opening.style.height = content_height + 'px'; if (closing != null) { closing.style.display = 'none'; closing.style.height = '0px'; } return; } time_left -= elapsed_ticks; var nu_close_height = Math.round((time_left/slide_time) * content_height); if (opening != null) { if (opening.style.display != 'block') opening.style.display = 'block'; opening.style.height = (content_height - nu_close_height) + 'px'; } if (closing != null) closing.style.height = nu_close_height + 'px'; setTimeout("slide_it(" + current_tick + "," + time_left + ",'" + close_id + "','" + open_id + "')", 33); } var slideInUse = new Array(); function Slide(objId, options) { this.obj = document.getElementById(objId); this.duration = 1; this.height = parseInt(this.obj.style.height); if(typeof options != 'undefined') { this.options = options; } else { this.options = {}; } if(this.options.duration) { this.duration = this.options.duration; } this.up = function() { this.curHeight = this.height; this.newHeight = '1'; if(slideInUse[objId] != true) { var finishTime = this.slide(); window.setTimeout("Slide('"+objId+"').finishup("+this.height+");",finishTime); } } this.down = function() { this.newHeight = this.height; this.curHeight = '1'; if(slideInUse[objId] != true) { this.obj.style.height = '1px'; this.obj.style.display = 'block'; this.slide(); } } this.slide = function() { slideInUse[objId] = true; var frames = 30 * duration; // Running at 30 fps var tIncrement = (duration*1000) / frames; tIncrement = Math.round(tIncrement); var sIncrement = (this.curHeight-this.newHeight) / frames; var frameSizes = new Array(); for(var i=0; i < frames; i++) { if(i < frames/2) { frameSizes[i] = (sIncrement * (i/frames))*4; } else { frameSizes[i] = (sIncrement * (1-(i/frames)))*4; } } for(var i=0; i < frames; i++) { this.curHeight = this.curHeight - frameSizes[i]; window.setTimeout("document.getElementById('"+objId+"').style.height='"+Math.round(this.curHeight)+"px';",tIncrement * i); } window.setTimeout("delete(slideInUse['"+objId+"']);",tIncrement * i); if(this.options.onComplete) { window.setTimeout(this.options.onComplete, tIncrement * (i-2)); } return tIncrement * i; } this.finishup = function(height) { this.obj.style.display = 'none'; this.obj.style.height = height + 'px'; } return this; } //-------------------------------------------------------------------- // A carefully timed focus.... //-------------------------------------------------------------------- function dfocus(fid, odiv, time) { var f = document.getElementById(odiv).style.display; if (f == '' || f == 'none') { setTimeout("document.getElementById('"+ fid +"').focus()", time); } } //--------------------------------------------------------------------- // Expand Address Book Entries //--------------------------------------------------------------------- var irow = '0'; var icol = ''; var aid = ''; function expand_row(id, orig_color) { if (icol == '') { icol = '#F7E5C9'; } if (irow != 0) { old_element = document.getElementById('R-'+irow); new_element = document.getElementById('R-'+id); old_inner_div = document.getElementById('T-'+irow); new_inner_div = document.getElementById('T-'+id); if (irow != id) { new_element.style.borderColor = '#B2C0CA'; old_element.style.borderColor = icol; new_element.className = 'addbook_row_sel'; old_element.className = 'addbook_row'; new_inner_div.style.display = ''; old_inner_div.style.display = 'none'; toggle_arrow(id, 'ON'); toggle_arrow(irow, 'OFF'); select_address(id); } else { if (new_inner_div.style.display == '') { old_element.style.borderColor = icol; old_inner_div.style.display = 'none'; old_element.className = 'addbook_row'; toggle_arrow(irow, 'OFF'); select_address(0); id = irow; } else { old_element.style.borderColor = '#B2C0CA'; old_inner_div.style.display = ''; old_element.className = 'addbook_row_sel'; toggle_arrow(id, 'ON'); select_address(id); id = irow; } } } else { var new_element = document.getElementById('R-'+id); var new_inner_div = document.getElementById('T-'+id); new_element.style.borderColor = '#B2C0CA'; new_element.className = 'addbook_row_sel'; new_inner_div.style.display = ''; toggle_arrow(id, 'ON'); select_address(id); } irow = id; icol = orig_color; } //-------------------------------------------- // Toggle Expand/Collapse Indicators //-------------------------------------------- function toggle_arrow(id, state) { arrow = document.getElementById('A-'+id); if (state == 'ON') { arrow.src = 'images/collapse.gif'; arrow.height = '11'; arrow.width = '11'; } else { arrow.src = 'images/expand.gif'; arrow.height = '11'; arrow.width = '11'; } } //-------------------------------------------- // Just something simple and stupid.... //-------------------------------------------- function select_address(aid) { hidden = document.getElementById('AD'); if (aid != '') { hidden.value = aid; } else { hidden.value = 'JS_OFF'; } } //-------------------------------------------- // Format floats to include trailing zeros // in currency and other float formats //-------------------------------------------- function format_float(num) { var num; num = num.toString().replace(/\$|\,/g,''); if (isNaN(num)) { num = "0"; } sign = (num == (num = Math.abs(num))); num = Math.floor(num * 100 + 0.50000000001); dec = num % 100; num = Math.floor(num / 100).toString(); if(dec < 10) { dec = "0" + dec; } for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++) { num = num.substring(0, num.length - (4 *i + 3))+','+num.substring(num.length - (4 *i + 3)); } return num + '.' + dec; }