// functions for basket /* var xmlreq_put_orig = xmlreq_put; function xmlreq_put_replacement(){ var fnn = xmlreq_put_replacement.caller.name || xmlreq_put_replacement.caller; alert([fnn,arguments]); return xmlreq_put.apply(this,arguments); } xmlreq_put = xmlreq_put_replacement; */ var alert_shown = 0; var last_confirm_txt = ''; function switch_opt(iid) { var iin = document.getElementById('in'+iid); var iop = document.getElementById('op'+iid); if (iop.style.display == 'none') { iop.style.display = ''; iin.style.display = 'none'; } else { iop.style.display = 'none'; iin.style.display = ''; } } function inc_val(vid) { var t = document.getElementById(vid); t.value = eval(t.value) + 1; } function dec_val(vid) { var t = document.getElementById(vid); if (t.value > 1) t.value = eval(t.value) - 1; } function remove_confirm(prd) { return confirm('Remove product '+prd+' from basket?'); } function scroll_down() { setTimeout(function(){ window.scroll(0,800); },200); } var g_pid = null; var g_quan = null; var g_chem = null; var g_hg = null; var g_fs = null; function add_to_basket (pid,quan,lbl_def,chemn,shg,sfs) { g_pid = pid; g_quan = quan; g_chem = chemn; g_hg = shg; g_fs = sfs; ae_prompt(add_to_basket_callback, 'Label your product with your custom label:',lbl_def); } function add_to_basket_callback(lbl) { var h_cert = d('hose_certificate'); if (h_cert) var need_cert = (h_cert.checked == true ? '1' : '0'); var bu = d('basket_url'); if (bu) var backurl = escape(bu.value); var new_url = '/order.php?act=addasm&pid='+g_pid+'&q='+g_quan+'&lbl='+lbl+'&chem='+g_chem+'&hg='+g_hg+'&fs='+g_fs+'&bmw=970'+'&cert='+need_cert+'&back_url='+backurl; if (lbl != null) { xmlreq_put(new_url,'basket'); scroll_down(); } } function lbl_upd_basket (iid,lbl) { var bu = d('basket_url'); if (bu) var backurl = escape(bu.value); xmlreq_put('/order.php?act=lbl&iid='+iid+'&lbl='+lbl+'&back_url='+backurl+'&bmw=970','basket'); } function qty_upd_basket (iid,quan) { var bu = d('basket_url'); if (bu) var backurl = escape(bu.value); xmlreq_put('/order.php?act=qty&iid='+iid+'&q='+quan+'&back_url='+backurl+'&bmw=970','basket'); } function del_from_basket (iid) { var bu = d('basket_url'); if (bu) var backurl = escape(bu.value); xmlreq_put('/order.php?act=del&iid='+iid+'&back_url='+backurl+'&bmw=970','basket'); } function chg_hl(input_id) { var tmp = document.getElementById(input_id); tmp.style.border='1px solid red'; } // functions for products // ~~~~~~~~~~~~~~~~~~~~~~ function clearlevels(lv){ for (i=lv;i<=4;i++){ var tmp = document.getElementById('s_l'+i); tmp.options.length=1; tmp.selectedIndex = 0; tmp.disabled = true; // if (i > 2) // tmp.style.display = 'none'; } } function hide(lv){ for (i=lv;i<=4;i++){ var tmp = document.getElementById('s_l'+i); tmp.style.display = 'none'; } } function clear_group_form_guides() { delClass(d('wsl1'),'s_fd'); delClass(d('wsl2'),'s_fd'); delClass(d('wsl3'),'s_fd'); delClass(d('wsl4'),'s_fd'); } function loadoptions(grp_idx, level, params){ //alert('g:'+grp_idx + ' l:'+level+ ' p:'+params); clearlevels(level); clear_group_form_guides(); var wnode = document.getElementById('s_l'+level); wnode.length = 1; wnode.options[0].disabled = true; for (i=0;i 1) { wnode.disabled = false; /*wnode.style.background='#c6daec';*/ // auto select if only 1 option... if (wnode.options.length == 2) { //alert(wnode.options[1].selected); if (wnode.options[1].selected == false) { wnode.options[1].selected = true; wnode.disabled = true; if (level == 4) { loadproductform(1,level,params); } else { //alert(wnode.options[1].text); loadoptions(1, (level+1), params); } } } if (wnode.options.length > 2) { //alert (wnode.options.length + ' -- ' + level); if (wnode.selectedIndex == 0) { addClass(d('wsl'+level),'s_fd'); } } } else { if (wnode.options.length == 1) { //alert ('lv' + level + '\n\n' + wnode.options.length + '\n\n' + wnode.options[0].text); wnode.disabled = true; } else { wnode.disabled = false; } loadproductform(grp_idx,level-1,params); } } function loadproductform(grp_idx,level,param) { clear_group_form_guides(); var wnode = document.getElementById('s_l'+level); if (wnode) { var gid = wnode.options[grp_idx].value; var pf_url = '/assembly.php?act=gpf&gid='+gid+(param != undefined ? param : ''); //alert('['+pf_url+']'); //alert(param); xmlreq_put(pf_url, 'product_form', "loadproductform_postrun('"+param+"')"); } } function loadproductform_postrun(paramz) { if (document.getElementById('product_id')) { var pid = document.getElementById('product_id').value; //document.getElementById('product_data').innerHTML = xmlreq_post('/assembly.php?act=gpd&pid='+pid+param,''); var pd_url = '/assembly.php?act=gpd&pid='+pid+paramz; //alert(pd_url); xmlreq_put(pd_url, 'product_data', "check_chemical_incompatible()"); } if (document.getElementById('no_products_in_this_selection')) { var alert_text = document.getElementById('no_products_in_this_selection').value; //document.getElementById('product_data').innerHTML = xmlreq_post('/assembly.php?act=gpd&pid='+pid+param,''); //var pd_url = '/assembly.php?act=gpd&pid='+pid+paramz; //alert(pd_url); //xmlreq_put(pd_url, 'product_data'); if (alert_shown == 0) alert(alert_text); alert_shown = 1; } mainform_load_selproduct(escape(paramz)); var spop_element = document.getElementById('spop'); if (spop_element){ spop_element.style.visibility='hidden'; } } function check_chemical_incompatible () { if (document.getElementById('chem_incompatible')) { var alert_txt = document.getElementById('chem_incompatible').value; var msg_type = document.getElementById('chem_incompatible_msgtype').value; if(msg_type == 'alert') { alert(alert_txt); } else if (last_confirm_txt == '' || last_confirm_txt != alert_txt) { if (confirm(alert_txt)) { last_confirm_txt = alert_txt; } else { var return_url = document.getElementById('chem_incompatible_returl').value; if (return_url != '') { eval(return_url); } } } } } function sel2js(frm) { var outString = ''; var hiddens = frm.getElementsByTagName('input'); var selects = frm.getElementsByTagName('select'); for (i=0;i0) { deleteIndex=obj.options.length-1; obj.options[deleteIndex]=null; } } function opt(object,href,text) { if (typeof(object) == "undefined") return false; var optionName = new Option(text, href, false, false) var length = object.length; object.options[length] = optionName; } function IsNumeric(strString) { // check for valid numeric strings var strValidChars = "0123456789."; var strChar; var blnResult = true; if (strString.length == 0) return false; if (strString == '0') return false; // test strString consists of valid characters listed above for (i = 0; i < strString.length && blnResult == true; i++) { strChar = strString.charAt(i); if (strValidChars.indexOf(strChar) == -1) { blnResult = false; } } return blnResult; }