%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home1/lightco1/www/components/com_virtuemart/assets/js/
Upload File :
Create Path :
Current File : //home1/lightco1/www/components/com_virtuemart/assets/js/vmsite.js

/**
 * vmsite.js: General Javascript Library for VirtueMart Frontpage
 *
 *
 * @package	VirtueMart
 * @subpackage Javascript Library
 * @author Patrick Kohl
 * @author Max Milbers
 * @copyright Copyright (c) 2014 VirtueMart Team. All rights reserved.
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 */

if (typeof Virtuemart === "undefined")
	Virtuemart = {};
(function($){
	var undefined,
	methods = {
		list: function(options) {
			var dest = options.dest;
			var ids = options.ids;
			var prefix = options.prefiks;
            methods.update(this,dest,ids,options.prefiks);
			jQuery(this).change( function() { methods.update(this,dest,ids,options.prefiks)});
		},
		update: function(org,dest,ids,prefix) {
			var opt = jQuery(org),
				optValues = opt.val() || [],
				byAjax = [] ;
			if (!jQuery.isArray(optValues)) optValues = jQuery.makeArray(optValues);
			if ( typeof  oldValues === "undefined") {
				oldValues = [];
			}
			if ( typeof  oldValues[prefix] !== "undefined") {

				//remove if not in optValues
				jQuery.each(oldValues[prefix], function(key, oldValue) {
				var sel = "#"+prefix+"group"+oldValue;
					console.log('remove old values',sel, oldValue);
					//if ( (jQuery.inArray( oldValue, optValues )) < 0 )
					jQuery(sel).remove();
				});
			}
			//push in 'byAjax' values and do it in ajax
			jQuery.each(optValues, function(optkey, optValue) {
				if( opt.data( 'd'+optValue) === undefined ) byAjax.push( optValue );
			});

			if (byAjax.length >0) {
				jQuery.getJSON(window.vmSiteurl + 'index.php?option=com_virtuemart&view=state&format=json&virtuemart_country_id=' + byAjax,
						function(result){

						var virtuemart_state_id = jQuery('#'+prefix+'virtuemart_state_id');
						var status = virtuemart_state_id.attr('required');
						
						if(status == 'required') {
							if( result[byAjax].length > 0 ) {
								virtuemart_state_id.attr('required','required');
							} else {
								virtuemart_state_id.removeAttr('required');
							}
						}

                        jQuery.each(result, function(key, value) {
							if (value.length >0) {
								opt.data( 'd'+key, value );	
							} else { 
								opt.data( 'd'+key, 0 );		
							}
						});
						methods.addToList(opt,optValues,dest,prefix);
						if ( typeof  ids !== "undefined") {
							var states =  ids.length ? ids.split(',') : [] ;
							jQuery.each(states, function(k,id) {
								jQuery(dest).find('[value='+id+']').attr("selected","selected");
							});
						}
                        jQuery(dest).trigger("liszt:updated"); //in new chosen this is chosen:updated
					}
				);
			} else {
				methods.addToList(opt,optValues,dest,prefix)
				jQuery(dest).trigger("liszt:updated");
			}
			oldValues[prefix] = optValues ;
			
		},
		addToList: function(opt,values,dest,prefix) {
			jQuery.each(values, function(dataKey, dataValue) {
				var groupExist = $("#"+prefix+"group"+dataValue+"").size();
				if ( ! groupExist ) {
					var datas = opt.data( 'd'+dataValue );
					if (datas.length >0) {
						var label = opt.find("option[value='"+dataValue+"']").text();
						var group ='<optgroup id="'+prefix+'group'+dataValue+'" label="'+label+'">';
						jQuery.each( datas  , function( key, value) {
							if (value) group +='<option value="'+ value.virtuemart_state_id +'">'+ value.state_name +'</option>';
						});
						group += '</optgroup>';
						jQuery(dest).append(group);
					}
				}
			});
		},
        startVmLoading: function(msg) {
            
            if (msg===undefined) {
                msg='';
            }
            var tmp = new Object();
            tmp.data = new Object();
			tmp.data.msg===msg;
            Virtuemart.startVmLoading(tmp);
        },
        stopVmLoading: function() {
			Virtuemart.stopVmLoading();
        }

	};

	Virtuemart.startVmLoading = function(e) {
            
		var msg='';
		if (e.data.msg!==undefined) {
			msg = e.data.msg;
		}
		jQuery("body").addClass("vmLoading");
		//jQuery("body").fadeIn( 400 );
		jQuery("body").append("<div class=\"vmLoadingDiv\"><div class=\"vmLoadingDivMsg\">"+msg+"</div></div>");
	};

	Virtuemart.stopVmLoading = function() {
            
		if( jQuery("body").hasClass("vmLoading") ){
			jQuery("body").removeClass("vmLoading");
			jQuery('div.vmLoadingDiv').remove();
		}
	};

	$.fn.vm2front = function( method ) {
		if ( methods[method] ) {
		  return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
		} else if ( typeof method === 'object' || ! method ) {
			return methods.init.apply( this, arguments );
		} else {
			jQuery.error( 'Method ' +  method + ' does not exist on Vm2 front jQuery library' );
		}    
	
	};
})(jQuery)

Zerion Mini Shell 1.0