/** * jQuery Color Animations * Copyright 2007 John Resig * Released under the MIT and GPL licenses. */ (function(jQuery){ jQuery.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i,attr){ jQuery.fx.step[attr] = function(fx){ if ( fx.state == 0 ) { fx.start = getColor( fx.elem, attr ); fx.end = getRGB( fx.end ); }; fx.elem.style[attr] = "rgb(" + [ Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0), Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0), Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0)].join(",") + ")"; }; }); function getRGB(color) { var result; if ( color && color.constructor == Array && color.length == 3 ) { return color; }; if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color)) { return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])]; }; if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color)) { return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55]; }; if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color)) { return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)]; }; if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color)) { return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)]; }; return colors[jQuery.trim(color).toLowerCase()];};function getColor(elem, attr) {var color;do {color = jQuery.curCSS(elem, attr);if ( color != '' && color != 'transparent' || jQuery.nodeName(elem, "body") ) break; attr = "backgroundColor"; } while ( elem = elem.parentNode ); return getRGB(color); }; var colors = { aqua:[0,255,255], azure:[240,255,255], beige:[245,245,220], black:[0,0,0], blue:[0,0,255], brown:[165,42,42], cyan:[0,255,255], darkblue:[0,0,139], darkcyan:[0,139,139], darkgrey:[169,169,169], darkgreen:[0,100,0], darkkhaki:[189,183,107], darkmagenta:[139,0,139], darkolivegreen:[85,107,47], darkorange:[255,140,0], darkorchid:[153,50,204], darkred:[139,0,0], darksalmon:[233,150,122], darkviolet:[148,0,211], fuchsia:[255,0,255], gold:[255,215,0], green:[0,128,0], indigo:[75,0,130], khaki:[240,230,140], lightblue:[173,216,230], lightcyan:[224,255,255], lightgreen:[144,238,144], lightgrey:[211,211,211], lightpink:[255,182,193], lightyellow:[255,255,224], lime:[0,255,0], magenta:[255,0,255], maroon:[128,0,0], navy:[0,0,128], olive:[128,128,0], orange:[255,165,0], pink:[255,192,203], purple:[128,0,128], violet:[128,0,128], red:[255,0,0], silver:[192,192,192], white:[255,255,255], yellow:[255,255,0] }; })(jQuery); // ajaxlog var ajaxLog = new Array(); var AJAXQueue = new Array(); var AJQueueInProgress = 0; // Ajax object function AJAXObject() { var httpobj = null; if(window.ActiveXObject) { httpobj = new window.ActiveXObject('Microsoft.XMLHTTP'); } else if(window.XMLHttpRequest) { httpobj = new XMLHttpRequest(); }; return httpobj; }; // Ajax Send function AJAXSend(ajSettings) { if(ajSettings) { if(ajSettings['urls']) { for(var i = 0; i < ajSettings['urls'].length; i++) { AJAXQueue.push(ajSettings['urls'][i]); }; }; var url = (ajSettings['url'] && ajSettings['url'] != '')?ajSettings['url']:null; var restype = (ajSettings['restype'] && ajSettings['restype'] != '')?ajSettings['restype']:null; var oncomplete = (ajSettings['oncomplete'])?ajSettings['oncomplete']:function() { return; }; var onerror = (ajSettings['onerror'])?ajSettings['onerror']:function() { return; }; var onload = (ajSettings['onload'])?ajSettings['onload']:function() { return; }; } else { ajaxLog.push('No se han propuesto opciones de configuración : AJAXSend.ajSettings es nulo'); return; }; if(!url && (!AJAXQueue || AJAXQueue.length <= 0)) { ajaxLog.push('No hay url para ejecutar el pedido : AJAXSend.url es nulo'); ajaxLog.push('No hay url para ejecutar el pedido : AJAXSend.urls esta vacio'); return false; }; var req = AJAXObject(); if(restype && restype == 'xml') { if(req.overrideMimeType) { req.overrideMimeType('text/xml'); }; }; req.onreadystatechange = function() { if(req.readyState == 4) { if(req.status == 200) { if(AJAXQueue.length > 0 && AJQueueInProgress != (AJAXQueue.length - 1)) { AJAXSend({'url' : AJAXQueue[AJQueueInProgress], 'oncomplete' : oncomplete, 'onload' : onload, 'onerror' : onerror }); AJQueueInProgress++; } else { if(restype && restype == 'xml') { oncomplete(req.responseXML); } else { oncomplete(req.responseText); }; }; } else { onerror(req.statusText); }; } else { onload(); }; }; var currentURL = (url)?url:AJAXQueue[0]; req.open('GET',currentURL); if(document.all) { req.send(); } else { req.send(null); }; } // REPLACE ALL - Retorna la cadena (parametro1) reemplazando en ella el valor a reemplazar (parametro2) por el nuevo valor (parametro3) function replaceAll(vstr, patternstr, repstr, regexp) { if(regexp) { while(vstr.match(patternstr)) { vstr = vstr.replace(patternstr, repstr); }; } else { while(vstr.indexOf(patternstr) != -1) { vstr = vstr.replace(patternstr, repstr); }; }; return vstr; }; // Set coma function setComa(cnum) { cnum = cnum.toString(); var cnumInt = cnum.split('.')[0]; var cnumDec = (cnum.split('.')[1])?cnum.split('.')[1]:'00'; var cnumIntstr = cnumInt.split(''); var numIntF = ''; for(var i = 1, j = cnumIntstr.length; j > 0; i++, j--) { var separator = ((i % 3) == 0 && i != cnumIntstr.length)?',':''; numIntF = separator + cnumIntstr[j-1] + numIntF; }; return numIntF + '.' + cnumDec; } // COOKIES function getCookie(name) { var start = document.cookie.indexOf(name + "=" ); var len = start + name.length + 1; if((!start) && (name != document.cookie.substring(0, name.length))) { return null; }; if(start == -1) return null; var end = document.cookie.indexOf(';', len); if (end == -1) end = document.cookie.length; return unescape(document.cookie.substring(len, end)); }; function setCookie( name, value, expires, path, domain, secure ) { var today = new Date(); today.setTime( today.getTime() ); if ( expires ) { expires = expires * 1000 * 60 * 60 * 24; }; var expires_date = new Date( today.getTime() + (expires) ); document.cookie = name+'='+escape( value ) + ( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString() ( ( path ) ? ';path=' + path : '' ) + ( ( domain ) ? ';domain=' + domain : '' ) + ( ( secure ) ? ';secure' : '' ); }; function deleteCookie( name, path, domain ) { if ( getCookie( name ) ) document.cookie = name + '=' + ( ( path ) ? ';path=' + path : '') + ( ( domain ) ? ';domain=' + domain : '' ) + ';expires=Thu, 01-Jan-1970 00:00:01 GMT'; }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /* CONFIGURATION */ var applyeventto = 'a#link_ccc'; // [tag name]#[element id] var qtyFieldIndx = 1; // Equals to index in itemsFields for the field for qty items in cart, in this case qty (index 1) var setEmptyCart = true; var itemsInCart = []; var getFieldsBy = 'title'; // title or index var itemsFields = [ /* From cart */ /* Example: 'title or index column:New Title:type' */ 'image[:]Image[:]image', // index 0 'qty[:]Qty[:]field', // index 1 'item #[:]Code[:]string', // index 2 'item name[:]Item[:]string', // index 3 'options[:]Options[:]string', // index 4 'rate[:]Price[:]string' // index 5 ]; var itemsFieldsBE = [ /* From Back End */ ]; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /* CONSTANTS */ var cartlinck = '/s.nl/sc.3/.f'; var totalitems = 0; var totalamount = 0.00; /* CONTROL */ var loadingajax = false; var overminicart = false; var timeexecuted = 0; //var newItemsIds = []; var incartChanges = {}; var itemsForCookie; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function getCart() { totalitems = 0; totalamount = 0.00; if(!loadingajax) { AJAXSend({ 'url' : '/s.nl/sc.3/.f', 'oncomplete' : function(resString) { var cartRegexp = new RegExp("]*id=(\"|\')carttable(\"|\')[^>]*>([\x00-\xFF’]*?)(]*>([\x00-\xFF’]*?)<\/table>([\x00-\xFF’]*?))*<\/table>","gi"); resString = replaceAll(resString,'–','-',false); var cartstring = resString.match(cartRegexp)[0]; jQuery(document).ready(function() { //alert('document is ready'); //return; if((jQuery('#breadcrumb').length == 0 || jQuery('#breadcrumb').html().indexOf('Shopping Cart') == -1) && document.getElementById('ms_minicart_itemtemplate')) { if(jQuery('#contentcart').length > 0) { jQuery(jQuery('#contentcart')[0]).html(cartstring); } else { jQuery('body').append('
' + cartstring + '
'); } //loadingajax = false; //alert('Now is time for getItems()'); getItems(); }; }); //return; }, 'onload' : function() { loadingajax = true; }, 'onerror' : function(resError) { } }); } } function getItems() { itemsInCart = []; /* select cart */ if(jQuery('#carttable').length <= 0) return; jQuery('#carttable').hide(); if(jQuery('#carttable tbody tr:first').length <= 0) return; // Get Titles from cart table var fieldsTitles = jQuery('#carttable > tbody > tr:first td'); // if configuration is by title if(getFieldsBy == 'title') { // iter Titles from cart table for(var ft = 0; ft < fieldsTitles.length; ft++) { // iter itemsField array for(var itf = 0; itf < itemsFields.length; itf++) { // if current itemField equals current Title from cart table if(itemsFields[itf].split('[:]')[0] == jQuery(fieldsTitles[ft]).text().toLowerCase()) { // replace the title name from current item field to Title index from cart table itemsFields[itf] = itemsFields[itf].replace(jQuery(fieldsTitles[ft]).text().toLowerCase(),ft); } } } // set getFieldsBy to index getFieldsBy = 'index'; } // Get every row from cart table var itemsRows = jQuery('#carttable > tbody > tr'); // If no items in cart itemsForCookie = ''; if(itemsRows.length > 3) { // iter rows from cart table starting in 1, because 0 is index for titles for(var itr = 1; itr < itemsRows.length - 2; itr++) { // exclude shippping row and total row from process var currentItem = []; // Get every field from current row var fieldsCells = jQuery(itemsRows[itr]).find('>td'); // iter field cells from current row for(var cfc = 0; cfc < fieldsCells.length; cfc++) { for(var itf = 0; itf < itemsFields.length; itf++) { if(itemsFields[itf].split('[:]')[0] == cfc) { // Fill current item if(jQuery(fieldsCells[cfc]).html().match(/id\.[0-9]*/gi)) { currentItem['id'] = jQuery(fieldsCells[cfc]).html().match(/id\.[0-9]*/gi)[0].split('.')[1]; } switch(itemsFields[itf].split('[:]')[2]) { case 'image': currentItem[itemsFields[itf].split('[:]')[1]] = jQuery(fieldsCells[cfc]).find('img').attr('src'); break; case 'string': currentItem[itemsFields[itf].split('[:]')[1]] = jQuery(fieldsCells[cfc]).text(); if(itf == qtyFieldIndx) { totalitems += parseInt(jQuery(fieldsCells[cfc]).text()); } break; case 'field': currentItem[itemsFields[itf].split('[:]')[1]] = jQuery(fieldsCells[cfc]).find('input[type=text]').val(); if(itf == qtyFieldIndx) { totalitems += parseInt(jQuery(fieldsCells[cfc]).find('input[type=text]').val()); currentItem['it_qty'] = parseInt(jQuery(fieldsCells[cfc]).find('input[type=text]').val()); } break; } break; } } } itemsForCookie += currentItem['id'] + ':' + currentItem['it_qty'] + ','; itemsInCart.push(currentItem); } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Get items from cookie if(getCookie('ms_mcitems')) { // Get items qtys from cookie var itemsInCookie = getCookie('ms_mcitems').split(','); // iter items in cookie for(var i = 0; i < itemsInCookie.length; i++) { // if item is valid and if is in valid format if(itemsInCookie[i] && itemsInCookie[i].split(':').length > 1) { // if item isn't load in cartChanges if(!incartChanges[itemsInCookie[i].split(':')[0]]) { incartChanges[itemsInCookie[i].split(':')[0]] = {}; } incartChanges[itemsInCookie[i].split(':')[0]]['before'] = itemsInCookie[i].split(':')[1]; } } // get items qtys from real cart var itemsFromCart = itemsForCookie.split(','); for(var i = 0; i < itemsFromCart.length; i++) { if(itemsFromCart[i] && itemsFromCart[i].split(':').length > 1) { if(incartChanges[itemsFromCart[i].split(':')[0]]) { incartChanges[itemsFromCart[i].split(':')[0]]['after'] = itemsFromCart[i].split(':')[1]; } else { incartChanges[itemsFromCart[i].split(':')[0]] = {}; incartChanges[itemsFromCart[i].split(':')[0]]['before'] = '0'; incartChanges[itemsFromCart[i].split(':')[0]]['after'] = itemsFromCart[i].split(':')[1]; } } } } else { var itemsFromCart = itemsForCookie.split(','); for(var i = 0; i < itemsFromCart.length; i++) { if(itemsFromCart[i] && itemsFromCart[i].split(':').length > 1) { incartChanges[itemsFromCart[i].split(':')[0]] = {}; incartChanges[itemsFromCart[i].split(':')[0]]['before'] = '0'; incartChanges[itemsFromCart[i].split(':')[0]]['after'] = itemsFromCart[i].split(':')[1]; } } } setCookie('ms_mcitems',itemsForCookie,1,'/','www.themedicalsupplydepot.com'); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if(isNaN(totalitems)) totalitems = 0; // Get estimated shipping from cart var shipprowcels = jQuery(jQuery('#carttable > tbody > tr')[itemsRows.length - 2]).find('> td'); var shippingprice = 0; jQuery(shipprowcels).each(function(){ if(jQuery(this).text().indexOf('$') != -1) { shippingprice = parseFloat(jQuery(this).text().replace('$','').replace(',','')); shippingprice = shippingprice.toFixed(2); } }); // Get total from cart var totalrowcels = jQuery(jQuery('#carttable > tbody > tr')[itemsRows.length - 1]).find('> td'); jQuery(totalrowcels).each(function(){ if(jQuery(this).text().indexOf('$') != -1) { totalamount = parseFloat(jQuery(this).text().replace('$','').replace(',','')) - parseFloat(shippingprice); totalamount = totalamount.toFixed(2); } }); drawMinicart(); } function drawMinicart() { var templateshtml = jQuery('#ms_minicart_template').html(); var itemtemplatehtml = jQuery('#ms_minicart_itemtemplate').html(); var mcartbox = jQuery('#customproduct_minicart'); tempitemtemplate = ''; for(var ci = 0; ci < itemsInCart.length; ci++) { tempitemtemplate += itemtemplatehtml.replace(itemtemplatehtml.match(/<[^>!]*>/)[0],itemtemplatehtml.match(/<[^>!]*>/)[0].replace('>',' id="itemrow' + itemsInCart[ci]['id'] + '" class="ms_mcitemrow">')); for(var cf in itemsInCart[ci]) { var currentFId = cf; tempitemtemplate = replaceAll(tempitemtemplate,'[[' + currentFId.toLowerCase() + ']]',itemsInCart[ci][currentFId],false); } } if(timeexecuted == 1) { templateshtml = replaceAll(templateshtml,'[[MC_ITEMLIST]]',tempitemtemplate,false); templateshtml = replaceAll(templateshtml,'[[LINCKTOCART]]',cartlinck,false); templateshtml = replaceAll(templateshtml,'[[QTYITEMS]]','' + parseInt(totalitems) + '',false); templateshtml = replaceAll(templateshtml,'[[TOTALAMT]]','' + setComa(parseFloat(totalamount).toFixed(2)) + '',false); templateshtml = replaceAll(templateshtml,'[[mc_itemlist]]',tempitemtemplate,false); templateshtml = replaceAll(templateshtml,'[[lincktocart]]',cartlinck,false); templateshtml = replaceAll(templateshtml,'[[qtyitems]]','' + parseInt(totalitems) + '',false); templateshtml = replaceAll(templateshtml,'[[totalamt]]','' + setComa(parseFloat(totalamount).toFixed(2)) + '',false); templateshtml = replaceAll(templateshtml,'ms_minicart_expand','ms_minicart_expbox',false); templateshtml = replaceAll(templateshtml,'ms_minicart_inner','ms_minicart_box',false); templateshtml = replaceAll(templateshtml,'' + parseInt(totalitems) + '',false); minicarttemplate = replaceAll(minicarttemplate,'[[TOTALAMT]]','' + setComa(parseFloat(totalamount).toFixed(2)) + '',false); minicarttemplate = replaceAll(minicarttemplate,'[[mc_itemlist]]',tempitemtemplate,false); minicarttemplate = replaceAll(minicarttemplate,'[[lincktocart]]',cartlinck,false); minicarttemplate = replaceAll(minicarttemplate,'[[qtyitems]]','' + parseInt(totalitems) + '',false); minicarttemplate = replaceAll(minicarttemplate,'[[totalamt]]','' + setComa(parseFloat(totalamount).toFixed(2)) + '',false); minicarttemplate = replaceAll(minicarttemplate,'