$(document).ready(function(){ initAll();//onload controller }); /* function adjust_height(x){ //this function is not currently in use var dropdown_diff = parseInt('32'); var elem = document.getElementById('drop_select_main_'+x); var leftOffset = elem.offsetLeft; var topOffset = elem.offsetTop; var parent = elem.offsetParent; while(parent != document.body){ leftOffset += parent.offsetLeft; topOffset += parent.offsetTop; parent = parent.offsetParent; } var Offsets = new Object(); Offsets.top = topOffset; Offsets.left = leftOffset; var screenheight = document.getElementById('screen_height'); alert(screenheight.value); var tmp_value_off = ''; if(screenheight.value == '99999'){ screenheight.value = Offsets.top; } var tmp_overall_screenheight = Offsets.top; if(tmp_overall_screenheight != screenheight.value){ tmp_value_off = screenheight.value-tmp_overall_screenheight; screenheight.value = tmp_overall_screenheight; }else{ } var tmp_fromtop = drop_main.offsetTop+dropdown_diff; var client_top = drop_main.clientHeight; var tmp_height = screen.height; if(document.body.offsetHeight > tmp_height){ tmp_height = document.body.offsetHeight; } if(tmp_fromtop+client_top>tmp_height){ var tmp_top = ''; var jumped = document.getElementById('jumped'); jumped.value = 1; tmp_top = drop_main.offsetTop-(client_top+dropdown_diff)-tmp_value_off; }else{ var tmp_top = ''; tmp_top = drop_main.offsetTop-tmp_value_off; } drop_main.style.top = tmp_top+'px'; alert(drop_main.style.top); } */ function strstr( haystack, needle, bool ) { //equivalent to php function // http://kevin.vanzonneveld.net // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfixed by: Onno Marsman // * example 1: strstr('Kevin van Zonneveld', 'van'); // * returns 1: 'van Zonneveld' // * example 2: strstr('Kevin van Zonneveld', 'van', true); // * returns 2: 'Kevin ' var pos = 0; haystack += ''; pos = haystack.indexOf( needle ); if( pos == -1 ){ return false; } else{ if( bool ){ return haystack.substr( 0, pos ); } else{ return haystack.slice( pos ); } } } function drop_activate(x,y){ //x == id of drop div being activated, y == id of div invisible div needs appended to var dropper = document.getElementById(x); if(dropper.style.display=='none' || dropper.style.display==''){ dropper.style.display = 'block'; create_invis(x,y); } else{ dropper.style.display = 'none'; go_away_invis(x); } } function create_invis(x,y){ //x == unique helper of invisible div, y == id of div invisible div needs appended to var invis_div = document.createElement('div'); invis_div.style.position = 'absolute'; invis_div.style.top = '0px'; invis_div.style.left = '0px'; invis_div.style.zIndex = '0'; invis_div.style.backgroundColor = '#000000'; invis_div.name = 'invis_div_'+x; invis_div.id = 'invis_div_'+x; invis_div.style.opacity = .00; invis_div.style.MozOpacity = .00; invis_div.style.filter = 'alpha(opacity='+(00)+')'; if(strstr(navigator.appName, 'Microsoft Internet Explorer')) { invis_div.style.width = screen.width-30; } else { invis_div.style.width = '100%'; } var out_height = screen.height; if(document.body.offsetHeight > out_height){out_height = document.body.offsetHeight}; invis_div.style.height = out_height+'px'; var major_tmp = document.getElementById(y); major_tmp.appendChild(invis_div); var main_div = document.getElementById(x); main_div.style.zIndex = '25'; var tmp_div = document.getElementById('invis_div_'+x); if(strstr(navigator.appName, 'Microsoft Internet Explorer')) { tmp_div.onclick=function() {go_away_invis(x);}; } else { tmp_div.setAttribute('onclick', 'go_away_invis(\''+x+'\')'); } } function go_away_invis(x){ //x == unique helper of invisible div as well as drop div being hidden var formElement = document.getElementById('invis_div_'+x); if (formElement && formElement.parentNode && formElement.parentNode.removeChild) { formElement.parentNode.removeChild(formElement); } var dropper = document.getElementById(x); dropper.style.display = 'none'; dropper.style.zIndex = '5'; } function hide_show_block(x){ //x == id of block in question for hide_show purposes var main_desc = document.getElementById(x); if(main_desc.style.display=='block' || main_desc.style.display == ''){ main_desc.style.display='none'; } else{ main_desc.style.display='block'; } } function change_mouse(x){ //x == 1 or 2 based on cursor preference if(x==1){ document.body.style.cursor = 'default'; } else if(x==2){ document.body.style.cursor = 'pointer'; } } function show_dim(){ var dim_pic = document.getElementById('dim_pic'); var enlarge_fake = document.getElementById('enlarge_fake'); for(var i = 0; i < document.f_product.getElementsByTagName('div').length; i++){ var input = document.f_product.getElementsByTagName('div')[i]; if(input.id.substr(0,9)=='prod_pic_'){ input.style.display='none'; } if(input.id.substr(0,13)=='enlarge_real_'){ input.style.display='none'; } } /*alert('show dim');*/ dim_pic.style.display = 'block'; enlarge_fake.style.display = 'block'; } function show_prod(x){ //x == id of the picture passed for lightbox purposes var dim_pic = document.getElementById('dim_pic'); var enlarge_fake = document.getElementById('enlarge_fake'); /*alert('show prod');*/ for(var i = 0; i < document.f_product.getElementsByTagName('div').length; i++){ var input = document.f_product.getElementsByTagName('div')[i]; if(input.id.substr(0,9)=='prod_pic_'){ if(input.id.substr(9)!=x){ input.style.display='none'; }else{ input.style.display='block'; } } if(input.id.substr(0,13)=='enlarge_real_'){ if(input.id.substr(13)!=x){ input.style.display='none'; }else{ input.style.display='block'; } } } var prod_pic = document.getElementById('prod_pic_'+x); var enlarge_real = document.getElementById('enlarge_real_'+x); dim_pic.style.display = 'none'; enlarge_real.style.display = 'block'; enlarge_fake.style.display = 'none'; } function update_dropdowns(x){ //x == select quatities for quantity of product var qty1 = document.getElementById('qty1'); var qty2 = document.getElementById('qty2'); if(x==1){ qty2.value = qty1.value; } else if(x==2){ qty1.value = qty2.value; } update_price(); } function update_display(x,y,z){ //x == id of replace div, y == id of div being replaced, z == casehelper for renaming ids var replace_info = document.getElementById(x); var replaced_info = document.getElementById(y); var tmp_div = document.createElement('div'); tmp_div.id = 'tmp_div_'+x; tmp_div.innerHTML = replace_info.innerHTML; tmp_div.style.display = 'none'; replace_info.appendChild(tmp_div); var new_replace = document.getElementById('tmp_div_'+x).innerHTML.replace(/
<\/div>/g, ''); replaced_info.innerHTML = new_replace; for(var i = 0; i < replaced_info.childNodes.length; i++){ switch(i){ case 0: replaced_info.childNodes[i].id = 'drop_image_'+z; replaced_info.childNodes[i].className = 'left drop_main_image'; break; case 1: replaced_info.childNodes[i].id = 'drop_name_'+z; replaced_info.childNodes[i].className = 'left drop_main_name'; break; case 2: replaced_info.childNodes[i].id = 'drop_price_'+z; replaced_info.childNodes[i].className = 'right drop_main_price'; break; //default: //alert('in update_display function'); //break; } } if(replaced_info.childNodes[0].innerHTML != ' '){ var tmp_src_id = document.getElementById('drop_image_'+z); var tmp_src = document.getElementById('drop_image_'+z).childNodes[0].src.replace(/dropdown/g, 'small'); var main_img = document.getElementById('chosen_image_'+z).childNodes[0]; main_img.src = tmp_src; } else if(replaced_info.childNodes[0].innerHTML == ' ' && replaced_info.childNodes[1].innerHTML == 'Choose Option...' && (z != 'Extended_Downrod' || z != 'Extension_Pole')){ var tmp_src_id = document.getElementById('drop_image_'+z); var tmp_src = 'http://www.ceilingfantasia.com/images/select-option.jpg'; var main_img = document.getElementById('chosen_image_'+z).childNodes[0]; main_img.src = tmp_src; } else if(replaced_info.childNodes[0].innerHTML == ' ' && replaced_info.childNodes[1].innerHTML == 'Choose Option...' && (z == 'Extended_Downrod' || z == 'Extension_Pole')){ var tmp_src_id = document.getElementById('drop_image_'+z); var tmp_src = 'http://www.ceilingfantasia.com/images/no-image.jpg'; var main_img = document.getElementById('chosen_image_'+z).childNodes[0]; main_img.src = tmp_src; } else if(replaced_info.childNodes[0].innerHTML == ' ' && replaced_info.childNodes[1].innerHTML == 'Select None'){ var tmp_src_id = document.getElementById('drop_image_'+z); var tmp_src = 'http://www.ceilingfantasia.com/images/no-image.jpg'; var main_img = document.getElementById('chosen_image_'+z).childNodes[0]; main_img.src = tmp_src; } var formElement = document.getElementById('tmp_div_'+x); if (formElement && formElement.parentNode && formElement.parentNode.removeChild) { formElement.parentNode.removeChild(formElement); } update_cart(z,x); update_price(); go_away_invis('drop_sub_div_'+z); /*alert(new_replace);*/ } function update_cart(x,y){ //x == casehelper, y == node selected var breakout = false; var input = document.getElementById('hidden_cart_'+x); //alert(input.id); //alert(input.value); var price = document.getElementById('hidden_price_'+x); var list_price = document.getElementById('hidden_list_price_'+x); var set_qty = document.getElementById('hidden_controller_set_qty_'+x); var set_qty_cart = document.getElementById('hidden_set_qty_cart_'+x); var cartids = document.getElementById('hidden_controller_id_'+x); var cartprices = document.getElementById('hidden_controller_price_'+x); var cartlistprices = document.getElementById('hidden_controller_list_price_'+x); var grandparent = document.getElementById(y).parentNode.parentNode; for(var i = 0; i < grandparent.childNodes.length; i++){ for(var ii = 0; ii < grandparent.childNodes[i].childNodes.length; ii++){ if(y == grandparent.childNodes[i].childNodes[ii].id){ var tmp_needed = i; breakout = true; break; } } if(breakout){ break; } } var cartids_array = new Array(); cartids_array = cartids.value.split(','); for(var i = 0; i < cartids_array.length; i++){ if(i==tmp_needed){ var id_needed = cartids_array[i]; break; } } var cartprice_array = new Array(); cartprice_array = cartprices.value.split(','); for(var i = 0; i < cartprice_array.length; i++){ if(i==tmp_needed){ var price_needed = cartprice_array[i]; break; } } var cartlistprices_array = new Array(); cartlistprices_array = cartlistprices.value.split(','); for(var i = 0; i < cartlistprices_array.length; i++){ if(i==tmp_needed){ var list_price_needed = cartlistprices_array[i]; break; } } if(x == 'Lighting' || x == 'Shade_Set_Fitter' || x == 'Bowl_Fitter' || x == 'Globe_Fitter'){ var cart = document.getElementById('hidden_cart_Shade_Set_Fitter'); if(cart){ cart.value = ''; price.value = ''; list_price.value = ''; } var cart = document.getElementById('hidden_cart_Bowl_Fitter'); if(cart){ cart.value = ''; price.value = ''; list_price.value = ''; } var cart = document.getElementById('hidden_cart_Globe_Fitter'); if(cart){ cart.value = ''; price.value = ''; list_price.value = ''; } } input.value = id_needed; price.value = price_needed; list_price.value = list_price_needed; if(set_qty){ var qty_array = new Array(); qty_array = set_qty.value.split(','); for(var i = 0; i < qty_array.length; i++){ if(i==tmp_needed){ var qty_needed = qty_array[i]; } } set_qty_cart.value = qty_needed; } /* alert(x+' value: '+input.value); alert('ids: '+cartids.value); alert('id selected: '+id_needed); alert('prices: '+cartprices.value); alert('price selected: '+price_needed); */ update_hidden_controls(x,tmp_needed); } function update_hidden_controls(x,y){ //x == casehelper, y == needed_val var control = document.getElementById('hidden_control_'+x); switch(x){ case 'Lighting': var input = document.getElementById('hidden_types_'+x); var input_array = new Array(); input_array = input.value.split(','); for(var i = 0; i < input_array.length; i++){ if(i == y){ var type = input_array[i]; break; } } var tmp_array = new Array(); switch(type){ //type == 0 (Shade), 1 (Bowl), 2 (Globe) case '0': tmp_array.push('1','0','0'); //show, hide, hide break; case '1': tmp_array.push('0','1','0'); //hide, show, hide break; case '2': tmp_array.push('0','0','1'); //show, show, hide break; } control.value = tmp_array; break; case 'Fan_Control': control.value = '1,0'; //show, hide break; case 'Fan_Light_Control': var control = document.getElementById('hidden_control_Fan_Control'); control.value = '0,1'; //hide, show break; case 'Blade_Set': var input = document.getElementById('hidden_assoc_helper'); var tmp_cart = document.getElementById('hidden_cart_'+x).value; var input_array = new Array(); var type = ''; input_array = input.value.split(','); for(var i = 0; i < input_array.length; i++){ if(input_array[i] == tmp_cart){ type = 'assoc'; break; } } switch(type){ case 'assoc': control.value = '1'; break; default: //no associated blade holder set control.value = '0'; break; } break; } if(x!='Fan_Control' && x!='Fan_Light_Control'){ update_drops('not_init'); } else{ update_drops(x); } } function update_drops(x){ //this function does not set variables it only hides or displays information based on other variables for(var i = 0; i < document.getElementsByTagName('input').length; i++){ var input = document.getElementsByTagName('input')[i]; if(input.type=='hidden' && input.id.substr(0,15) == 'hidden_control_'){ if(input.id.substr(15)=='Lighting'){ //hide or show fitter elements based on what lighting option is selected //x,y,z == shade, bowl, globe var input_value = input.value; var input_array = new Array(); input_array = input_value.split(','); /*alert(input_array);*/ var tmp_input6 = document.getElementById('options_prod_Fan_Control'); var tmp_input7 = document.getElementById('options_prod_Fan_Light_Control'); for(var ii = 0; ii < input_array.length; ii++){ switch(ii){ case 0://shade var tmp_input = document.getElementById('options_prod_Shade_Set_Fitter'); var chosen_image = document.getElementById('chosen_image_Shade_Set_Fitter'); var drop_replace = document.getElementById('drop_replace_Shade_Set_Fitter'); var hidden_cart = document.getElementById('hidden_cart_Shade_Set_Fitter'); var tmp_input4 = document.getElementById('hidden_price_Shade_Set_Fitter'); var tmp_input5 = document.getElementById('hidden_list_price_Shade_Set_Fitter'); break; case 1://bowl var tmp_input = document.getElementById('options_prod_Bowl_Fitter'); var chosen_image = document.getElementById('chosen_image_Bowl_Fitter'); var drop_replace = document.getElementById('drop_replace_Bowl_Fitter'); var hidden_cart = document.getElementById('hidden_cart_Bowl_Fitter'); var tmp_input4 = document.getElementById('hidden_price_Bowl_Fitter'); var tmp_input5 = document.getElementById('hidden_list_price_Bowl_Fitter'); break; case 2://globe var tmp_input = document.getElementById('options_prod_Globe_Fitter'); var chosen_image = document.getElementById('chosen_image_Globe_Fitter'); var drop_replace = document.getElementById('drop_replace_Globe_Fitter'); var hidden_cart = document.getElementById('hidden_cart_Globe_Fitter'); var tmp_input4 = document.getElementById('hidden_price_Globe_Fitter'); var tmp_input5 = document.getElementById('hidden_list_price_Globe_Fitter'); break; default: alert('lighting case not selected: function update_drops'); break; } if(tmp_input){ if(input_array[ii] == 1){ tmp_input.style.display = 'block'; } else if(input_array[ii] == 0){ tmp_input.style.display = 'none'; } } if(drop_replace){ if(input_array[ii] == 0){ for(var iii = 0; iii < drop_replace.childNodes.length; iii++){ drop_replace.childNodes[iii].innerHTML = ''; if(iii == 1){ drop_replace.childNodes[iii].innerHTML = 'Choose Option...'; } } chosen_image.childNodes[0].src = 'http://www.ceilingfantasia.com/images/select-option.jpg'; hidden_cart.value = ''; tmp_input4.value = ''; tmp_input5.value = ''; } } } if(x!='init' && x!='Fan_Control' && x!='Fan_Light_Control'){ var lighting_info = document.getElementById('drop_name_Lighting'); var control = document.getElementById('hidden_control_Fan_Control'); if(lighting_info.childNodes[0].innerHTML == 'Choose Option...'){ if(tmp_input6){ //var pricer = document.getElementById('hidden_price_Fan_Control'); //alert('debugger fan control: '+pricer.value); //if(x!='Fan_Control'){ // alert('restoring fc'); // restore_hidden_inputs('Fan_Control'); //} control.value = '1,0'; //hide, show tmp_input6.style.display = 'block'; } if(tmp_input7){ //var pricer = document.getElementById('hidden_price_Fan_Light_Control'); //alert('debugger fan light control: '+pricer.value); //if(x!='Fan_Light_Control'){ // alert('archiving flc'); // remove_hidden_inputs('Fan_Light_Control'); //} control.value = '1,0'; //hide, show tmp_input7.style.display = 'none'; } //alert('block'); } else{ if(tmp_input6){ //var pricer = document.getElementById('hidden_price_Fan_Control'); //alert('debugger fan control: '+pricer.value); //if(x!='Fan_Control'){ // alert('archiving fc'); // remove_hidden_inputs('Fan_Control'); //} control.value = '0,1'; //hide, show tmp_input6.style.display = 'none'; } if(tmp_input7){ //var pricer = document.getElementById('hidden_price_Fan_Light_Control'); //alert('debugger fan light control: '+pricer.value); //if(x!='Fan_Light_Control'){ // alert('restoring flc'); // restore_hidden_inputs('Fan_Light_Control'); //} control.value = '0,1'; //hide, show tmp_input7.style.display = 'block'; } //alert('none'); } } } else if(input.id.substr(15)=='Fan_Control'){ //clear information based on fan control selected //x,y == fan control, fan light control var input_value = input.value; var input_array = new Array(); input_array = input_value.split(','); for(var ii = 0; ii < input_array.length; ii++){ switch(ii){ case 0://fan control has option selected var tmp_input = document.getElementById('drop_replace_Fan_Control'); var tmp_input2 = document.getElementById('chosen_image_Fan_Control'); var tmp_input3 = document.getElementById('hidden_cart_Fan_Control'); var tmp_input4 = document.getElementById('hidden_price_Fan_Control'); var tmp_input5 = document.getElementById('hidden_list_price_Fan_Control'); break; case 1://fan light control has option selected var tmp_input = document.getElementById('drop_replace_Fan_Light_Control'); var tmp_input2 = document.getElementById('chosen_image_Fan_Light_Control'); var tmp_input3 = document.getElementById('hidden_cart_Fan_Light_Control'); var tmp_input4 = document.getElementById('hidden_price_Fan_Light_Control'); var tmp_input5 = document.getElementById('hidden_list_price_Fan_Light_Control'); break; default: alert('fan control case not selected'); break; } if(input_array[ii] == '1'){ //show the fan control / fan light control if(x!='init'){ if(tmp_input && ii == 0){ if(x!='Fan_Control' && x!='Lighting'){ //var pricer = document.getElementById('hidden_price_Fan_Control'); //alert('debugger fan control: '+pricer.value); //restore_hidden_inputs('Fan_Control'); //alert('debugger fan control: '+pricer.value); tmp_input.style.display = 'block'; } } else if(tmp_input && ii == 1){ if(x!='Fan_Light_Control' && x!='Lighting'){ //var pricer = document.getElementById('hidden_price_Fan_Light_Control'); //alert('debugger fan light control: '+pricer.value); //restore_hidden_inputs('Fan_Light_Control'); //alert('debugger fan light control: '+pricer.value); tmp_input.style.display = 'block'; } } } /* //if the value is equal to one we don't need to do anything, and thus the reason why this code is commented for(var iii = 0; iii < tmp_input.childNodes.length; iii++){ tmp_input.childNodes[iii].innerHTML = ''; if(iii == 1){ //meaning the name option iteration tmp_input.childNodes[iii].innerHTML = 'Choose Option...'; } } */ } else if(input_array[ii] == '0'){ //hide the fan control / fan light control if(x!='init'){ if(tmp_input && ii == 0){ if(x!='Fan_Control' && x!='Lighting'){ //var pricer = document.getElementById('hidden_price_Fan_Control'); //alert('debugger fan control: '+pricer.value); //remove_hidden_inputs('Fan_Control'); //alert('debugger fan control: '+pricer.value); tmp_input.style.display = 'none'; } } else if(tmp_input && ii == 1){ if(x!='Fan_Light_Control' && x!='Lighting'){ //var pricer = document.getElementById('hidden_price_Fan_Light_Control'); //alert('debugger fan light control: '+pricer.value); //remove_hidden_inputs('Fan_Light_Control'); //alert('debugger fan light control: '+pricer.value); tmp_input.style.display = 'none'; } } } /* if(tmp_input){ for(var iii = 0; iii < tmp_input.childNodes.length; iii++){ tmp_input.childNodes[iii].innerHTML = ''; if(iii == 1){ tmp_input.childNodes[iii].innerHTML = 'Choose Option...'; } } tmp_input2.childNodes[0].src = 'http://www.ceilingfantasia.com/images/no-image.jpg'; tmp_input3.value = ''; tmp_input4.value = ''; tmp_input5.value = ''; } */ } } } else if(input.id.substr(15)=='Blade_Set'){ //hide or show the associated blade set holder options for(var ii = 0; ii < document.getElementsByTagName('div').length; ii++){ var div = document.getElementsByTagName('div')[ii]; if(div.id == 'options_prod_Associated_Blade_Holder_Set'){ var assoc = document.getElementById('options_prod_Associated_Blade_Holder_Set'); var tmp_input = document.getElementById('drop_replace_Associated_Blade_Holder_Set'); var tmp_input2 = document.getElementById('chosen_image_Associated_Blade_Holder_Set'); var tmp_input3 = document.getElementById('hidden_cart_Associated_Blade_Holder_Set'); var tmp_input4 = document.getElementById('hidden_price_Associated_Blade_Holder_Set'); var tmp_input5 = document.getElementById('hidden_list_price_Associated_Blade_Holder_Set'); if(input.value == 1){ assoc.style.display = 'block'; } else{ assoc.style.display = 'none'; for(var iii = 0; iii < tmp_input.childNodes.length; iii++){ tmp_input.childNodes[iii].innerHTML = ''; if(iii == 1){ tmp_input.childNodes[iii].innerHTML = 'Choose Option...'; } } tmp_input2.childNodes[0].src = 'http://www.ceilingfantasia.com/images/no-image.jpg'; tmp_input3.value = ''; tmp_input4.value = ''; tmp_input5.value = ''; } } } } } } if(x!='init'){ update_lighting_sub(); } } function restore_hidden_inputs(caser){ var tmper_cart = document.getElementById('hidden_tmp_cart_'+caser); var tmper_price = document.getElementById('hidden_tmp_price_'+caser); var tmper_list = document.getElementById('hidden_tmp_list_price_'+caser); var tmper_li = document.getElementById('hidden_tmp_drop_sub_li_nothing_'+caser); var cart = document.getElementById('hidden_cart_'+caser); var price = document.getElementById('hidden_price_'+caser); var list_price = document.getElementById('hidden_list_price_'+caser); var sub_li = document.getElementById('drop_sub_li_nothing_'+caser); if(cart && tmper_cart){ cart.value = tmper_cart.value; } if(price && tmper_price){ price.value = tmper_price.value; } if(list_price && tmper_list){ list_price.value = tmper_list.value; } if(sub_li && tmper_li){ sub_li.innerHTML = tmper_li.value; } } function remove_hidden_inputs(caser){ var cart = document.getElementById('hidden_cart_'+caser); var price = document.getElementById('hidden_price_'+caser); var list_price = document.getElementById('hidden_list_price_'+caser); var sub_li = document.getElementById('drop_sub_li_nothing_'+caser); var f_prod = document.getElementById('f_product'); var temper_cart = document.getElementById('hidden_tmp_cart_'+caser); if(!temper_cart){ var tmper_cart = document.createElement('input'); tmper_cart.id = 'hidden_tmp_cart_'+caser; tmper_cart.type = 'hidden'; f_prod.appendChild(tmper_cart); var temper_cart = document.getElementById('hidden_tmp_cart_'+caser); } if(cart){ temper_cart.value = cart.value; } else{ temper_cart.value = ''; } var temper_price = document.getElementById('hidden_tmp_price_'+caser); if(!temper_price){ var tmper_price = document.createElement('input'); tmper_price.id = 'hidden_tmp_price_'+caser; tmper_price.type = 'hidden'; f_prod.appendChild(tmper_price); var temper_price = document.getElementById('hidden_tmp_price_'+caser); } if(price){ temper_price.value = price.value; } else{ temper_price.value = ''; } var temper_list = document.getElementById('hidden_tmp_list_price_'+caser); if(!temper_list){ var tmper_list = document.createElement('input'); tmper_list.id = 'hidden_tmp_list_price_'+caser; tmper_list.type = 'hidden'; f_prod.appendChild(tmper_list); var temper_list = document.getElementById('hidden_tmp_list_price_'+caser); } if(list_price){ temper_list.value = list_price.value; } else{ temper_list.value = ''; } var temper_sub_li = document.getElementById('hidden_tmp_drop_sub_li_nothing_'+caser); if(!temper_sub_li){ var temper_sub_li = document.createElement('input'); temper_sub_li.id = 'hidden_tmp_drop_sub_li_nothing_'+caser; temper_sub_li.type = 'hidden'; f_prod.appendChild(temper_sub_li); var temper_list = document.getElementById('hidden_tmp_drop_sub_li_nothing_'+caser); } if(sub_li){ temper_sub_li.value = sub_li.innerHTML; } else{ temper_sub_li.value = ''; } if(cart){ cart.value = ''; } if(price){ price.value = ''; } if(list_price){ list_price.value = ''; } } function update_lighting_sub(){ var cart1 = document.getElementById('hidden_cart_Shade_Set_Fitter'); var cart2 = document.getElementById('hidden_cart_Bowl_Fitter'); var cart3 = document.getElementById('hidden_cart_Globe_Fitter'); //alert('cartval: '+x); var tmp1 = false; var tmp2 = false; var tmp3 = false; var tmp4 = false; if(cart1 && cart1.value != ''){ tmp1 = document.getElementById('hidden_controller_id_Shade_Set_Fitter'); tmp2 = document.getElementById('hidden_controller_price_Shade_Set_Fitter'); tmp3 = 'Shade_Set_Fitter'; tmp4 = document.getElementById('hidden_cart_Shade_Set_Fitter'); } else if(cart2 && cart2.value != ''){ tmp1 = document.getElementById('hidden_controller_id_Bowl_Fitter'); tmp2 = document.getElementById('hidden_controller_price_Bowl_Fitter'); tmp3 = 'Bowl_Fitter'; tmp4 = document.getElementById('hidden_cart_Bowl_Fitter'); } else if(cart3 && cart3.value != ''){ tmp1 = document.getElementById('hidden_controller_id_Globe_Fitter'); tmp2 = document.getElementById('hidden_controller_price_Globe_Fitter'); tmp3 = 'Globe_Fitter'; tmp4 = document.getElementById('hidden_cart_Globe_Fitter'); } var span_qty = document.getElementById('light_shade_qty'); //alert(span_qty.innerHTML); var span_each = document.getElementById('lighting_span_each'); var span_fitter = document.getElementById('lighting_span_fitter'); var span_total = document.getElementById('lighting_span_total'); var lighting = document.getElementById('hidden_cart_Lighting'); var light_string = document.getElementById('hidden_controller_id_Lighting'); var lighting_array = new Array(); if(light_string){ lighting_array = light_string.value.split(','); for(var i = 0; i < lighting_array.length; i++){ if(lighting.value == lighting_array[i]){ var light_selected = i; } } } var light_price_string = document.getElementById('hidden_controller_price_Lighting'); if(light_price_string){ var light_price_array = new Array(); light_price_array = light_price_string.value.split(','); var light_price = light_price_array[light_selected]; } if(tmp1){ //alert(tmp4.value); var tmp1_array = new Array(); tmp1_array = tmp1.value.split(','); //alert(tmp1_array); for(var i = 0; i < tmp1_array.length; i++){ if(tmp4.value == tmp1_array[i]){ var val_nec = i; //alert('value found: '+tmp1_array[i]); } } var tmp2_array = new Array(); tmp2_array = tmp2.value.split(','); var shade_qty = document.getElementById('hidden_fitter_qty_'+tmp3); var shade_array = new Array(); shade_array = shade_qty.value.split(','); if(span_qty){ if(light_price && light_price != 'undefined' && light_price == '0.00'){ span_qty.innerHTML = 0; } else{ span_qty.innerHTML = shade_array[val_nec]; } span_each.innerHTML = light_price; } if(span_fitter){ span_fitter.innerHTML = tmp2_array[val_nec]; } if(span_qty && span_fitter && span_qty.innerHTML != 'undefined' && span_fitter.innerHTML != 'undefined' && span_each.innerHTML != 'undefined'){ var tmp_sub = parseFloat((shade_array[val_nec]*light_price)); var tmp_total = parseFloat(tmp_sub)+parseFloat(tmp2_array[val_nec]); span_total.innerHTML = parseFloat(tmp_total).toFixed(2); } else if(span_qty && span_fitter && (span_qty.innerHTML == 'undefined' || span_fitter.innerHTML == 'undefined')){ if(span_each.innerHTML != '0.00' && span_each.innerHTML != 'undefined'){ span_qty.innerHTML = 1; } else{ span_qty.innerHTML = 0; } span_fitter.innerHTML = 0; var tmp_sub = parseFloat((span_qty.innerHTML*light_price)); var tmp_total = parseFloat(tmp_sub)+parseFloat(span_fitter.innerHTML); span_total.innerHTML = parseFloat(tmp_total).toFixed(2); } } else{ var fitter_array = new Array(); fitter_array.push('Shade_Set_Fitter','Globe_Fitter','Bowl_Fitter'); for(var i = 0; i < fitter_array.length; i++){ var chosen_image = document.getElementById('chosen_image_'+fitter_array[i]); var drop_replace = document.getElementById('drop_replace_'+fitter_array[i]); var tmp_input3 = document.getElementById('hidden_cart_'+fitter_array[i]); var tmp_input4 = document.getElementById('hidden_price_'+fitter_array[i]); var tmp_input5 = document.getElementById('hidden_list_price_'+fitter_array[i]); if(drop_replace){ for(var iii = 0; iii < drop_replace.childNodes.length; iii++){ drop_replace.childNodes[iii].innerHTML = ''; if(iii == 1){ drop_replace.childNodes[iii].innerHTML = 'Choose Option...'; } } chosen_image.childNodes[0].src = 'http://www.ceilingfantasia.com/images/select-option.jpg'; tmp_input3.value = ''; tmp_input4.value = ''; tmp_input5.value = ''; } } if(span_qty){ if(light_price && light_price == 'undefined'){ light_price = 0; } else if(!light_price){ var light_price = 0; } if(light_price != 0 && span_each.innerHTML != 'undefined'){ span_qty.innerHTML = 1; } else{ span_qty.innerHTML = 0; } span_each.innerHTML = light_price; } if(span_fitter){ span_fitter.innerHTML = 0; } if(span_qty && span_fitter){ span_total.innerHTML = parseFloat(light_price).toFixed(2); } } //alert(span_qty.innerHTML); } function update_price(){ var fan_control = document.getElementById('hidden_control_Fan_Control'); //alert(fan_control.value); var set_qty_cart = document.getElementById('hidden_set_qty_cart_Blade_Set'); var set_qty_cart2 = document.getElementById('hidden_set_qty_cart_Associated_Blade_Holder_Set'); var set_qty_cart3 = document.getElementById('hidden_set_qty_cart_Associated_Fan_Assembly'); var price_holder = document.getElementById('price_holder'); var price_holder2 = document.getElementById('price_holder2'); var list_price = document.getElementById('list_price'); var savings = document.getElementById('savings'); var qty = document.getElementById('qty2').value; var span_qty = document.getElementById('light_shade_qty'); /*alert(qty);*/ var overall_price = 0; var overall_list_price = 0; for(var i = 0; i < document.getElementsByTagName('input').length; i++){ var input = document.getElementsByTagName('input')[i]; if(input.id.substr(0,13) == 'hidden_price_'){ if(set_qty_cart){ var tmp_qty = set_qty_cart.value; } if(set_qty_cart2){ var tmp_qty2 = set_qty_cart2.value; } if(set_qty_cart3){ var tmp_qty3 = set_qty_cart3.value; } /*alert(input.value);*/ if(input.value==''){ /*alert(input.id);*/ input.value = 0; } if(isNaN(input.value)){ input.value = 0; } if(input.id.substr(13,6) == 'other_'){ var tmp_end = input.id.substr(19); var tmp_input = document.getElementById('other_cart_'+tmp_end); if(tmp_input.checked === true){ overall_price += parseFloat(input.value); var tweener = parseFloat(input.value); //alert('Other Accessory '+tmp_end+': '+tweener); } } else{ if(input.id.substr(13) == 'Lighting'){ if(span_qty){ var tmp_value = (input.value * span_qty.innerHTML); overall_price += parseFloat(tmp_value); var tweener = parseFloat(tmp_value); //alert('Lighting: '+tweener); } } else if(input.id.substr(13) == 'Fan_Control'){ if(fan_control && fan_control.value == '1,0'){ overall_price += parseFloat(input.value); var tweener = parseFloat(input.value); } } else if(input.id.substr(13) == 'Fan_Light_Control'){ if(fan_control && fan_control.value == '0,1'){ overall_price += parseFloat(input.value); var tweener = parseFloat(input.value); } } else{ if(tmp_qty && input.id.substr(13) == 'Blade_Set'){ overall_price += parseFloat(input.value*tmp_qty); var tweener = parseFloat(input.value*tmp_qty); //alert('Blade Set: '+tweener); } else if(tmp_qty2 && input.id.substr(13) == 'Associated_Blade_Holder_Set'){ overall_price += parseFloat(input.value*tmp_qty2); var tweener = parseFloat(input.value*tmp_qty); //alert('Blade Set: '+tweener); } else if(tmp_qty3 && input.id.substr(13) == 'Associated_Fan_Assembly'){ overall_price += parseFloat(input.value*tmp_qty3); var tweener = parseFloat(input.value*tmp_qty3); //alert('Associated Fan Assembly Set: '+tweener); } else{ overall_price += parseFloat(input.value); var tweener = parseFloat(input.value); //alert(input.id.substr(13)+': '+tweener); } } } //alert('our price '+input.id.substr(13)+': '+tweener); } if(input.id.substr(0,18) == 'hidden_list_price_'){ if(set_qty_cart){ var tmp_qty = set_qty_cart.value; } if(set_qty_cart2){ var tmp_qty2 = set_qty_cart2.value; } if(set_qty_cart3){ var tmp_qty3 = set_qty_cart3.value; } /*alert(input.value);*/ if(input.value==''){ /*alert(input.id);*/ input.value = 0; } if(isNaN(input.value)){ input.value = 0; } if(input.id.substr(18,6) == 'other_'){ var tmp_end = input.id.substr(24); var tmp_input = document.getElementById('other_cart_'+tmp_end); if(tmp_input.checked === true){ overall_list_price += parseFloat(input.value); var tweener = input.value; } } else{ if(input.id.substr(18) == 'Lighting'){ if(span_qty){ var tmp_value = (input.value * span_qty.innerHTML); overall_list_price += parseFloat(tmp_value); var tweener = tmp_value; } } else{ if(tmp_qty && input.id.substr(18) == 'Blade_Set'){ overall_list_price += parseFloat(input.value*tmp_qty); } else if(tmp_qty2 && input.id.substr(18) == 'Associated_Blade_Holder_Set'){ overall_list_price += parseFloat(input.value*tmp_qty2); } else if(tmp_qty3 && input.id.substr(18) == 'Associated_Fan_Assembly'){ overall_list_price += parseFloat(input.value*tmp_qty3); } else{ overall_list_price += parseFloat(input.value); } } } //alert('list price '+input.id.substr(18)+': '+tweener); } } /*alert(overall_price);*/ if(overall_price != 0 && qty != 0){ var final_price = ((overall_price * qty)*1); var final_list_price = ((overall_list_price * qty)*1); var final_save_price = final_list_price-final_price; price_holder.innerHTML = formatCurrency(final_price.toFixed(2)); price_holder2.innerHTML = formatCurrency(final_price.toFixed(2)); list_price.innerHTML = formatCurrency(final_list_price.toFixed(2)); var percent_saved = parseInt((final_save_price.toFixed(2)/final_list_price.toFixed(2))*100); savings.innerHTML = formatCurrency(final_save_price.toFixed(2))+' ('+percent_saved+'% OFF)'; /*alert(final_price);*/ } else{ alert('Price calculation problem.'); } } function update_other_price(){ update_price(); } function formatCurrency(num) { num = num.toString().replace(/\$|\,/g,''); if(isNaN(num)) num = '0'; sign = (num == (num = Math.abs(num))); num = Math.floor(num*100+0.50000000001); cents = num%100; num = Math.floor(num/100).toString(); if(cents < 10) cents = '0' + cents; 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 (((sign)?'':'-') + '$' + num + '.' + cents); } function imax(){ //activates imax function var imax_array = new Array(); for(var i = 0; i < document.getElementsByTagName('input').length; i++){ var input = document.getElementsByTagName('input')[i]; if(input.type == 'hidden' && input.id.substr(0, 11)=='hidden_src_'){ var src_req = input.id.substr(11); var src_needed = input.value; var dir_req = document.getElementById('hidden_dir_'+src_req); var tmp_dir = dir_req.value; var dir_needed = tmp_dir.replace(/_/g, '/'); var alt_req = document.getElementById('hidden_alt_'+src_req); var alt_needed = alt_req.value; var id_req = document.getElementById('hidden_id_'+src_req); var id_needed = id_req.value; imax_array.push(dir_needed,src_needed,alt_needed,id_needed); } } ajax(imax_array); } function ajax(imax_array){ //array of elements in, order == dir[0],src[1],alt[2],id_in[3] //alert(imax_array); var dir = imax_array[0] var src = imax_array[1]; var alt = imax_array[2]; var id_in = imax_array[3]; var url8 = 'http://www.ceilingfantasia.com/index.php?pg=imax&task=show_image&dir='+dir+'&src='+escape(src)+'&alt='+escape(alt); //alert(url8); //alert(src); if(dir!==undefined){ xmlhttp8=null; if (window.XMLHttpRequest){ xmlhttp8=new XMLHttpRequest(); } else if (window.ActiveXObject){ xmlhttp8=new ActiveXObject('Microsoft.XMLHTTP'); } if (xmlhttp8!=null){ if(imax_array[0]!=''){ if(src!=''){ xmlhttp8.onreadystatechange = imax_tbstate_Change; xmlhttp8.open('GET',url8,true); xmlhttp8.send(null); } } } else { alert('Your browser does not support XMLHTTP.'); } } else{ clean_page(); } function imax_tbstate_Change(){ if (xmlhttp8.readyState==4){ if (xmlhttp8.status==200 && (xmlhttp8.responseText!='zero' && xmlhttp8.responseText!='alpha')) { elemental = document.getElementById(id_in); if(elemental!==null){ //elemental.style.className = 'stopblink'; elemental.innerHTML=xmlhttp8.responseText; //alert(xmlhttp8.responseText); imax_array.shift();//pop dir off of beginning of array imax_array.shift();//pop src off of beginning of array imax_array.shift();//pop alt off of beginning of array imax_array.shift();//pop id off of beginning of array if(imax_array[0]!=''){ ajax(imax_array); } } } else { alert('Problem retrieving data: ' + xmlhttp8.statusText); } } } } function proceed(){ //js validation //make sure a fitter is selected based on lighting that is selected var light = document.getElementById('hidden_cart_Lighting'); var blades = document.getElementById('hidden_cart_Blade_Set'); var fitter_shade = document.getElementById('hidden_cart_Shade_Set_Fitter'); var fitter_bowl = document.getElementById('hidden_cart_Bowl_Fitter'); var fitter_globe = document.getElementById('hidden_cart_Globe_Fitter'); var motor_housing = document.getElementById('hidden_cart_Associated_Motor_Housing'); if(light){ if(fitter_shade){ if(light.value == '' && fitter_shade.value != ''){ alert('To continue with the currently select shade set fitter, please select a lighting option.'); } } if(fitter_bowl){ if(light.value == '' && fitter_bowl.value !=''){ alert('To continue with the currently selected bowl fitter, please select a lighting option.'); } } if(fitter_globe){ if(light.value == '' && fitter_globe.value != ''){ alert('To continue with the currently selected globe fitter, please select a lighting option.'); } } } if(blades && (blades.value == '0' || blades.value == '')){ alert('To continue, please select a Blade Set option.'); return false; } var types_string = document.getElementById('hidden_types_Lighting'); var light_string = document.getElementById('hidden_controller_id_Lighting'); if(light_string && types_string){ var types_array = new Array(); var light_array = new Array(); types_array = types_string.value.split(','); light_array = light_string.value.split(','); for(var i = 0; i < light_array.length; i++){ if(light.value == light_array[i]){ var light_pos = i; var fitter = types_array[i]; break; } } switch(fitter){ case '0': //shade var tmp_input = document.getElementById('hidden_cart_Shade_Set_Fitter'); var other_var = 'Shade Set Fitter'; break; case '1': //bowl var tmp_input = document.getElementById('hidden_cart_Bowl_Fitter'); var other_var = 'Bowl Fitter'; break; case '2': //globe var tmp_input = document.getElementById('hidden_cart_Globe_Fitter'); var other_var = 'Globe Fitter'; break; default: var tmp_input = 3; break; } /*alert(other_var+' value: '+tmp_input.value);*/ if(light.value != '0'){ if(tmp_input.value == '' || tmp_input.value == '0'){ alert('To continue with the current lighting, please select a '+other_var+'.'); return false; } } } //make sure a fan control is selected var fan_controller = document.getElementById('hidden_controller_id_Fan_Control'); if(fan_controller){ if(fan_controller.value != ''){ var fan_control = document.getElementById('hidden_cart_Fan_Control'); var fan_light_control = document.getElementById('hidden_cart_Fan_Light_Control'); if((fan_control.value == '' && fan_light_control.value == '') || (fan_control.value == '' && fan_light_control.value == '0') || fan_control.value == '0' && fan_light_control.value == ''){ alert('To continue, please select a Fan Control or a Fan Light Control.'); return false; } } } //make sure an associated blade holder set is selected if required var blade_set = document.getElementById('hidden_cart_Blade_Set'); var assoc_needed = false; var assoc_string = document.getElementById('hidden_assoc_helper'); if(assoc_string){ if(assoc_string.value != ''){ var assoc_array = new Array(); assoc_array = assoc_string.value.split(','); for(var i = 0; i < assoc_array.length; i++){ if(blade_set.value == assoc_array[i]){ assoc_needed = true; break; } } if(assoc_needed){ var assoc = document.getElementById('hidden_cart_Associated_Blade_Holder_Set'); if(assoc.value == ''){ alert('To continue with the current blade set, please select an Associated Blade Holder Set.'); return false; } } } } if(motor_housing && (motor_housing.value == '0' || motor_housing.value == '')){ alert('To continue, please select an Associated Motor Housing.'); return false; } //if everything is successful return true; } function clean_page(){ //cleans page of all imax elements for(var i = 0; i < document.getElementsByTagName('input').length; i++){ var input = document.getElementsByTagName('input')[i]; if(input.type == 'hidden' && input.id.substr(0, 11)=='hidden_src_'){ var src_req = input.id.substr(11); var formElement = document.getElementById('hidden_src_'+src_req); if (formElement && formElement.parentNode && formElement.parentNode.removeChild) { formElement.parentNode.removeChild(formElement); } var formElement = document.getElementById('hidden_dir_'+src_req); if (formElement && formElement.parentNode && formElement.parentNode.removeChild) { formElement.parentNode.removeChild(formElement); } var formElement = document.getElementById('hidden_alt_'+src_req); if (formElement && formElement.parentNode && formElement.parentNode.removeChild) { formElement.parentNode.removeChild(formElement); } var formElement = document.getElementById('hidden_id_'+src_req); if (formElement && formElement.parentNode && formElement.parentNode.removeChild) { formElement.parentNode.removeChild(formElement); } } } } function build_javascript_input(){ var input = document.createElement('input'); input.id = 'js_elem'; input.value = 1; input.name = 'js_elem'; input.type = 'hidden'; var form = document.getElementById('f_product'); form.appendChild(input); var elem = document.getElementById('js_elem'); } function close_all_option_buttons(){ var buttons_array = new Array('lighting', 'blades', 'extensions', 'others'); for(var i = 0; i < buttons_array.length; i++){ var div = document.getElementById('options_'+buttons_array[i]); if(div){ div.style.display = 'none'; } } } function initAll(){ //contains all functions necessary to run after the page is loaded build_javascript_input(); close_all_option_buttons(); update_drops('init'); set_animations(); imax(); } function set_animations(){//could not use $ selector, was being overwritten, had to use 'jQuery' instead if(jQuery('#btn_light').length > 0){ jQuery('#btn_light').click(function(){ jQuery('#options_lighting').slideToggle("slow"); }); } if(jQuery('#btn_blade').length > 0){ jQuery('#btn_blade').click(function(){ jQuery('#options_blades').slideToggle("slow"); }); } if(jQuery('#btn_down').length > 0){ jQuery('#btn_down').click(function(){ jQuery('#options_extensions').slideToggle("slow"); }); } if(jQuery('#btn_other').length > 0){ jQuery('#btn_other').click(function(){ jQuery('#options_others').slideToggle("slow"); }); } }