//************************************************************ // Purpose : For javascripts in the WS-engine default templates // Filename : wsjs.asp // Author : Erik-Jan de Keijzer // Date : 1-3-2010 // Document : //************************************************************ var shoppingbasketXml; var articleid = ''; var token = ''; var http_referer = ''; var searchFieldDefaultValue = 'Zoek op trefwoord'; var searchFieldValue; var shoppingcartonclick; var eventObj; jQuery(document).ready(function () { basket_show(); jQuery('#mainCategoryDropdown').change(setCategoryPage); jQuery('#subCategoryDropdown').change(setSubCategoryPage); jQuery('#searchField').val(searchFieldDefaultValue); jQuery('#searchField').bind('click keyup focus blur', searchFieldInputManipulation); jQuery('#searchField').bind('keyup', checkKeycode); jQuery('#searchButton').click(setSearchPage); jQuery('.btn[name=\'orderButton\']').attr('href', 'javascript:void(0);'); jQuery('.btn[name=\'orderButton\']').click(confirmAdd); jQuery('#backButton').click(goBack); shoppingcartonclick = jQuery('#shoppingbasketButton').attr('onclick'); preIcePay(); jQuery('#cancelAdd').bind('click', cancelAdd); jQuery('#continueAdd').bind('click', continueAdd); jQuery('.blockOverlay').click(function() { jQuery.unblockUI(); return false; }); }); var setCategoryPage = function (event) { var categoryID = jQuery('#mainCategoryDropdown > option:selected').attr('categoryid'); var categoryCode = jQuery('#mainCategoryDropdown > option:selected').attr('categorycode'); var sourceid = jQuery('#mainCategoryDropdown > option:selected').attr('sourceid'); var categoryName = jQuery('#mainCategoryDropdown > option:selected').attr('categoryname'); var redirectURL = '?ws_state=categorypage&ws_action=load&ws_id=' + categoryID + '&ws_code=' + categoryCode + '&ws_sourceid=' + sourceid + '&ws_name=' + jQuery.URLEncode(categoryName) + '&articleid=' + articleid + '&token=' + token; if (('' + categoryID).length > 0) self.location.href = redirectURL; }; var setSubCategoryPage = function (event) { var subCategoryID = jQuery('#subCategoryDropdown > option:selected').attr('categoryid'); var subCategoryCode = jQuery('#subCategoryDropdown > option:selected').attr('categorycode'); var subSourceid = jQuery('#subCategoryDropdown > option:selected').attr('sourceid'); var subCategoryName = jQuery('#subCategoryDropdown > option:selected').attr('categoryname'); var redirectURL = '?ws_state=categorypage&ws_action=load&ws_id=' + subCategoryID + '&ws_code=' + subCategoryCode + '&ws_sourceid=' + subSourceid + '&ws_name=' + jQuery.URLEncode(subCategoryName) + '&articleid=' + articleid + '&token=' + token; if (('' + subCategoryID).length > 0) self.location.href = redirectURL; }; var searchFieldInputManipulation = function (event) { searchFieldValue = jQuery.trim(jQuery('#searchField').val()); if (searchFieldValue == searchFieldDefaultValue || searchFieldValue == '') { searchFieldValue = searchFieldDefaultValue; jQuery('#searchField').addClass('noKeyword'); if (event != null && (event.type == 'click' || event.type == 'keyup')) jQuery('#searchField').val(''); else jQuery('#searchField').val(searchFieldDefaultValue); } else { jQuery('#searchField').removeClass('noKeyword'); } }; var setSearchPage = function (event) { searchFieldInputManipulation(null); if (searchFieldValue != searchFieldDefaultValue && searchFieldValue != '') { var redirectURL = '?ws_state=searchpage&ws_action=load&ws_keyword=' + jQuery.URLEncode(searchFieldValue) + '&articleid=' + articleid + '&token=' + token; self.location.href = redirectURL; } }; var checkKeycode = function (event) { var keycode; if (window.event) keycode = window.event.keyCode; else if (event) keycode = event.which; if (keycode == 13) { setSearchPage(); } }; var goBack = function (event) { location.href = javascriptReferer; //history.back(); }; function confirmAdd(event) { var needRecept = jQuery(event.currentTarget).attr('reqrecept'); if(needRecept =='True') { if ((jQuery(event.currentTarget).is('.clicked'))){ basket_add(event) } else{ eventObj = event; jQuery.blockUI({ showOverlay:true, message: jQuery('#addDialog'), css : {'width': '300px'} }); } } else { basket_add(event); } } function cancelAdd() { jQuery.unblockUI(); } function continueAdd() { basket_add(eventObj); jQuery.unblockUI(); } var basket_add = function (event) { var productid = jQuery(event.currentTarget).attr('productid'); var productcode = jQuery(event.currentTarget).attr('productcode'); var productname = jQuery(event.currentTarget).attr('productname'); var sourceid = jQuery(event.currentTarget).attr('sourceid'); var producttypeid = jQuery(event.currentTarget).attr('producttypeid'); var orderquantity = jQuery(event.currentTarget).parent().find('#orderquantity').val(); var sourcedata = ''; var options = jQuery(event.currentTarget).attr('options') == 'true'; var optionlist = jQuery(event.currentTarget).parent().parent().parent().find('#options').length > 0; var optionlistFilled = jQuery(event.currentTarget).parent().parent().parent().find('input[name=\'option\']:checked').val() != undefined; var oncompleteFunc = function (lipuObj) { if (lipuObj.ErrorCode == '100') { jQuery(event.currentTarget).addClass('clicked'); basket_show(); } }; var objOrderPipeLine = new OrderPipeLine(); if (options == false) { objOrderPipeLine.Basket_Add(productid, sourceid, orderquantity, sourcedata, oncompleteFunc); } else if (optionlistFilled == true) { var option = jQuery(event.currentTarget).parent().parent().parent().find('input[name=\'option\']:checked'); sourcedata+='' + '\n'; sourcedata+=' ' + '\n'; sourcedata+=' ' + '\n'; sourcedata+=' ' + jQuery(option).attr('optionlistid') + '' + '\n'; sourcedata+=' ' + jQuery(option).attr('optionlistname') + '' + '\n'; sourcedata+=' ' + jQuery(option).attr('optionlistmandatory') + '' + '\n'; sourcedata+=' ' + '\n'; sourcedata+=' ' + '\n'; sourcedata+=' ' + jQuery(option).attr('optionlistelementid') + '' + '\n'; sourcedata+=' ' + jQuery(option).attr('optionlistelementname') + '' + '\n'; sourcedata+=' ' + jQuery(option).attr('optionlistelementdefaultoption') + '' + '\n'; sourcedata+=' ' + jQuery(option).attr('optionlistelementposition') + '' + '\n'; sourcedata+=' ' + jQuery(option).attr('optionlistelementweight') + '' + '\n'; sourcedata+=' ' + jQuery(option).attr('optionlistelementcode') + '' + '\n'; sourcedata+=' ' + '\n'; sourcedata+=' ' + '\n'; sourcedata+=' ' + '\n'; sourcedata+=' ' + '\n'; sourcedata+='' + '\n'; objOrderPipeLine.Basket_Add(productid, sourceid, orderquantity, sourcedata,oncompleteFunc); } else { if (optionlist == false) { self.location.href = '?ws_state=productdetailpage&ws_action=load&ws_id=' + productid + '&ws_code=' + productcode + '&ws_name=' + jQuery.URLEncode(productname) + '&ws_orderquantity=' + orderquantity + '&articleid=' + articleid + '&token=' + token; } else { alert('Specificeer uw product door een optie uit de lijst te selecteren.'); } } }; var basket_show = function (event) { var oncompleteFunc = function(lipuObj) { var xmlDocument = jQuery.xmlDOM(lipuObj.SendData); var orderLoaded = jQuery('PIPELINEORDER > LOADED', xmlDocument).text() == 'True'; if(lipuObj.ErrorCode == '100') { shoppingbasketXml = jQuery.xmlDOM(lipuObj.SendData); var numProducts = jQuery('PIPELINEORDER > TOTALPIPELINEORDERITEMS', xmlDocument).text(); var totalPriceInternal = jQuery('PIPELINEORDER > TOTALINCTAX', xmlDocument).text().replace(',','.'); //var totalPrice = jQuery('PIPELINEORDER > TOTALINCTAX', xmlDocument).text().replace('.',','); var totalPrice = (totalPriceInternal * 1).toFixed(2).replace('.',','); var orderItems = jQuery('PIPELINEORDER > PIPELINEORDERITEMS > PIPELINEORDERITEM', xmlDocument); if (numProducts > 0) { jQuery('#numProducts').html(numProducts); jQuery('#basketLabel').html('product(en)'); if(totalPrice != '0,00') { jQuery('#totalPrice').html('€ '+ totalPrice); } jQuery('#shoppingbasketButton').removeAttr('onclick'); jQuery('#shoppingbasketButton').unbind('click'); jQuery('#shoppingbasketButton').click(shoppingcartonclick); } else { jQuery('#numProducts').html(''); jQuery('#basketLabel').html('Geen producten'); jQuery('#totalPrice').html(''); jQuery('#shoppingbasketButton').removeAttr('onclick'); jQuery('#shoppingbasketButton').unbind('click'); } jQuery(orderItems).each(function() { var productId = jQuery(this).find('PRODUCTID').text(); var orderQuantity = jQuery(this).find('ORDERQUANTITY').text(); jQuery(jQuery(".btn[productid = '"+ productId +"']")).addClass('clicked'); jQuery(jQuery(".btn[productid = '"+ productId +"']")).attr('href',"#"); //jQuery(jQuery(".btn[productid = '"+ productId +"']")).attr('onclick', jQuery('#shoppingbasketButton').attr('onclick')); //jQuery(jQuery(".btn[productid = '"+ productId +"']")).click( jQuery('#shoppingbasketButton').click()); //new way on how to open shopping cart jQuery(jQuery(".btn[productid = '"+ productId +"']")).click(function(){ var obj = jQuery(".btn[productid = '"+ productId +"']"); OpenShoppingCart(jQuery(obj).attr("carttype"),jQuery(obj).attr("cartdomain"),articleid,jQuery(obj).attr("cartsecure"),obj); }); //Making the dropdown readonly and with the ordered value jQuery(jQuery(".orderquantity[productid = '"+ productId +"']")).val(orderQuantity); jQuery(jQuery(".orderquantity[productid = '"+ productId +"']")).attr('disabled', 'disabled'); }); } }; var objOrderPipeLine = new OrderPipeLine(); objOrderPipeLine.Basket_Show(oncompleteFunc); }; function OpenShoppingCart(type,domain,articleid,isHttps,obj) { OpenShoppingCart_Internal(type,domain,articleid,isHttps,obj,'basket','transfer','', true); } function OpenShoppingCart_Internal(type,domain,articleid,isHttps,obj,state,action,extraparams, blnShowShoppingcartMessage) { var url = ''; var http = 'http://'; if(isHttps == 'True') { http = 'https://'; } var querystring = 'new=1&articleid='+articleid+'&state='+state+'&action='+action+'&token_affiliate=1@1&siteid_affiliate=35789'+extraparams; if(type == 'popup') { if(blnShowShoppingcartMessage) { jQuery.blockUI({ showOverlay:true, message: "Er wordt een venster voor u geopend waarin u uw bestelling kunt afronden.", css: { padding: '15px'} }); setTimeout("jQuery.unblockUI()",3000); } var strPage = http + domain + '/pages/popups_frames/ws_test.asp'; var querystring_tb = '&keepThis=true&TB_iframe=true&modal=false&height=580&width=800'; url = strPage + '?' + querystring + querystring_tb; //alert(jQuery(obj).offset().top); tb_closeScreenClickInBg = false; tb_show('', url, false,preThickBox,postThickBox); } else { var strPage = '/pages/ws_shoppingcart.asp'; self.location.href = strPage + '?' + querystring; } }; var postThickBox = function () { document.location.href = document.location.href.replace('#','').replace('&openshoppingcart=1',''); } var preThickBox = function () { jQuery("body").css("overflow","hidden"); } var preIcePay = function() { var openshoppingcart = getValue('openshoppingcart'); var redirectstate = getValue('redirectstate'); var redirectaction = getValue('redirectaction'); var status = getValue('Status'); if(openshoppingcart == '1') { OpenShoppingCart_Internal('popup','www.bodybow.uwpraktijkonline.nl','115756','False',null,redirectstate,redirectaction,'&Status=' + status, false); } }; //Gets a certain value from the url querystring function getValue( name ) { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if( results == null ) return ""; else return results[1]; }