var overlibcache = {};
function jsonNonekimxSet(id, idfld, table, field, value, callback){
	var url = '/json/nonekimx_set/'+id+'/'+idfld+'/'+table;
	var params = '{"'+field+'":"'+value+'"}';
	jQuery.ajax({url: url,data: params,type:'POST',complete:function(request) {
			var res = jQuery.parseJSON(request.responseText);
			if (jQuery.isPlainObject(res)){alert(res.error);}
			else {
				eval(callback);
			}
	}});
}

function jsonQsave(type, id2, id1, rel, reltype, grp, subgrp, field, value, callback){
	var url = '/json/qsave/'+type+'/'+id2+'/'+id1+'/'+rel+'/'+reltype+'/'+grp+'/'+subgrp;
	if(is_array(field)){
		var params = '{';
		for(var i = 0; i < field.length; i++){
			params += '"'+field[i]+'":"'+value[i];
		}
		params += '}';
	}else{
		var params = '{"'+field+'":"'+value+'"}';
	}
	jQuery.ajax({url: url,data: params,type:'POST',complete: function(request) {
			var res = request.responseText;
			if (res == "false") refresh();
			else eval(callback);
		}
	});
}
function jsonSet(id, field, value, callback){
	var url = '/json/set/'+id+'/1';
	var params = '{"'+field+'":"'+value+'"}';
	jQuery.ajax({url:url,data: params,type: 'POST',
		complete:function(request) {var res = request.responseText;if (res == "false") {}}
	});
}
function jsonView(id){
	var title = arguments.length > 1 ? arguments[1] : "View Fraud Analysis Result";
	var w = arguments.length > 2 ? arguments[2] : 600;
	var h = arguments.length > 3 ? arguments[3] : 420;
	var rely = 50;
	overlib('<div id="jsonview" align="center" style="width:'+w+'px;height:'+h+'px;overflow-x:hidden;overflow-y:scroll">' +
				'<img src=\'/theme/default/image/icon_loading.gif\'>&nbsp;System is loading. Please wait...</div>',
				STICKY, CAPTION,title,CAPTIONFONTCLASS,'overlibCaption',CLOSESIZE,'12px',MIDX,0,RELY,rely,CLOSETEXT,'',
				CLOSECLICK,WIDTH,w,HEIGHT,h,FGCOLOR,'#FFFFFF',
				CGBACKGROUND,'/theme/default/image/mi_gr_bg.jpg',BGCOLOR,'#999999');
	var theme = arguments.length > 4 ? arguments[4] : 'standard';
	var url			= '/json/view/'+id+'/'+theme;
	OLgetAJAX(url,function(){
		eval('var res ='+OLresponseAJAX);
		var overlayDiv = wd.getElementById('jsonview');
		overlayDiv.className = 'overlay';
		wd.getElementById('jsonview').innerHTML = res + '<p align="center"><input type="button" value="Close" class="button_cancel" onClick="cClick();"></p>';
	});
}

function overlibshow(url, caption){
	var contenturl=url;
	var oWidth = arguments.length > 2 && parseInt(arguments[3], 10) > 0 ? arguments[3] : '535';
	var oHeight = arguments.length > 3 && parseInt(arguments[4], 10) > 0 ? arguments[4] : '400';
	overlib('<div id="viewcontent" style="width:'+oWidth+'px;'+
			'height:'+oHeight+'px;" align="left">'+
			'<div id="loadingbox"><img src="/img/ajax-loading-bar.gif" align="center" alt="loading"></div>'+
			'</div>',
			CAPTION, caption,
			CAPICON, "/img/logo_overlib_caption.gif",
			CLOSETEXT,' ', CAPTIONFONTCLASS,"overlibCaption",
			CLOSEFONTCLASS,"overlibCloseText",
			BGCLASS,"overlibBgTable",
			WIDTH, (arguments.length>2&&parseInt(arguments[3])>0?arguments[3]:535),
			HEIGHT,(arguments.length>3&&parseInt(arguments[4])>0?arguments[4]:400),
			TEXTSIZE,"11px", MIDX,0,RELY,20,STICKY, CLOSECLICK, WRAP, MODAL, FGCOLOR,'#FFFFFF',
			CGCLASS,"overlibCapTable",BGCOLOR,'#999999');
	
	//jQuery( "#overDiv" ).draggable({ handle: 'div.overlibCaption' });
	//jQuery( 'div.overlibCaption' ).css('cursor','pointer');
	//reposition screen
	   	var wHeight = jQuery(window).height();
    	var wWidth = jQuery(window).width();
    	var w = parseInt(oWidth, 10);
    	var h = parseInt(oHeight, 10);
    	
    	var top = wHeight > h ? Math.floor((wHeight - h) / 2) : 0;
        var left = (wWidth - w) / 2;
    if(!(jQuery.browser.msie && jQuery.browser.version.substr(0,1)<7)){
    	jQuery("#overDiv").css({'top':top+'px', 'left':left+'px','position':'fixed'});
    }

	var arr = url.split('.');
	if(arr[arr.length-1]=="html") {var mode = 'static';}
	else{
		var mode = 'json';
		url = '/json/view/'+url;
		if(arguments.length > 2)
			url=url+'/'+arguments[2];url+='/1';
	}
	
	if  (arguments[5]=='noview')  { 	//replace url if not use do_view in url
        if (contenturl.indexOf('/hotel') >= 0 || contenturl.indexOf('/ebay') >= 0)
            url = contenturl;
        else
            url = '/json/'+contenturl;
    }
	
	if (arguments[2] == 'ajax') {
        if (overlibcache[url]){
            jQuery('#viewcontent').html(overlibcache[url]);
        }else{
        	var nocache = arguments[6];
            OLgetAJAX(url,function(){
                if(mode == 'static') 
                    var res = OLresponseAJAX;
                else
                    var res = jQuery.parseJSON(OLresponseAJAX);
                if(nocache != 'nocache') overlibcache[url] = res;
                jQuery('#viewcontent').html(res);
                if(typeof(OLAjaxCallback)=="function") 
                	OLAjaxCallback();
            });
        }
	}else {
		jQuery('#viewcontent').html(contenturl);
	}
}

function showEpermPopUp(nametag){
    overlib(
        '<div id="viewcontent" style="width:300px;height:400px;position:relative">'+
            '<img src="/img/ajax-loading-bar.gif" align="center" alt="loading" style="position:absolute;left:40px;top:185px" />'+
        '</div>',
        CAPTION, 'Add User Group',
        CLOSETEXT,' ', CAPTIONFONTCLASS,"overlibCaption",
        CLOSEFONTCLASS,"overlibCloseText",
        BGCLASS,"overlibBgTable",
        WIDTH, (arguments.length>2&&parseInt(arguments[3])>0?arguments[3]:535),
        HEIGHT,(arguments.length>3&&parseInt(arguments[4])>0?arguments[4]:400),
        TEXTSIZE,"11px", MIDX,0,RELY,20,STICKY, CLOSECLICK, WRAP, MODAL, FGCOLOR,'#FFFFFF',
        CGCLASS,"overlibCapTable",BGCOLOR,'#999999');
    
    jQuery( "#overDiv" ).draggable({ handle: 'div.overlibCaption' });
    var t = parseInt((jQuery(window).height() - 430)/2, 10);
    var l = parseInt((jQuery(window).width() - 300)/2, 10);     
    jQuery("#overDiv").css({top: t + 'px',left:l+'px',position:'fixed'});
    
    var url='/index.php/mod/htmlIEPerm/userlist/type=user&addto='+nametag+'con&name='+nametag;
    OLgetAJAX(url,function(){
        jQuery('#viewcontent').html(OLresponseAJAX);
    });
}

function overlibajaxload(url){
	wd.getElementById('viewcontent').innerHTML = '<div id="loadingbox"><img src="/img/loading.gif" align="center" alt="Loading"></div>';
	var ajax = jQuery('#viewcontent').load(url);
}
function overlibConfirm(msg,yes,no,caption){
	 var msg=(msg||'');var caption=(caption||'');
	 var overCfm=
	 (OLns4?'<form action="javascript:void(0);">':'')+msg
	 +'<div style="font-size:4px;line-height:4px;"><\/div>'
	 +'<div style="width:100%;text-align:center;margin-top:10px"><input type="button" '
	 +'class="htmlIAddPopupButton" onclick="cClick();'+yes
	 +';return false;" value=" Yes ">  '
	 +'<input type="button" class="htmlIAddPopupButton"'
	 +'onclick="cClick();'+no
	 +';return false;" value=" No "></div>'
	 +(OLns4?'<\/form>':'');
	 
	overlib(overCfm, caption?CAPTION:DONOTHING,caption?caption:DONOTHING, MODAL,
	MIDX,0,RELY,200,STICKY,WIDTH,400,FGCOLOR,'#FFFFFF', CLOSETEXT,'',
	CGBACKGROUND,'/img/mi_gr_bg.jpg',BGCOLOR,'#999999');
}


function errorDialog(msg,caption,width,height){
	w = width?width:400;
	msgw = w - 60;
	if(!overlib2){
		overlib2('<div style="width:100%;padding-top:5px;" id="errdlg"><div style="width:54px;float:left"><img src="/img/dialog_error.png" border="0" /></div><div style="float:left;width:'+msgw+'px">'+msg+'</div></div>',
		caption?CAPTION:DONOTHING,caption?caption:DONOTHING,MODAL,
		STICKY, MIDX,0,RELY,200,WIDTH,w,HEIGHT,height?height:100,FGCOLOR,'#FFFFFF', CLOSECLICK,CLOSETEXT,'Close',
		CGBACKGROUND,'/img/mi_r_bg.gif',BGCOLOR,'#999999');
	}else{
		overlib('<div style="width:100%;padding-top:5px;" id="errdlg"><div style="width:54px;float:left"><img src="/img/dialog_error.png" border="0" /></div><div style="float:left;width:'+msgw+'px">'+msg+'</div></div>',
		caption?CAPTION:DONOTHING,caption?caption:DONOTHING,MODAL,
		STICKY, MIDX,0,RELY,200,WIDTH,w,HEIGHT,height?height:100,FGCOLOR,'#FFFFFF', CLOSECLICK,CLOSETEXT,'Close',
		CGBACKGROUND,'/img/mi_r_bg.gif',BGCOLOR,'#999999');
	}
}

function warningDialog(msg,caption,width,height){
	w = width?width:400;
	msgw = w - 60;
	if(overlib){
	overlib2('<div style="width:100%;padding-top:5px;" id="wrndlg"><div style="width:54px;float:left"><img src="/theme/default/image/note_warning.jpg" border="0" /></div><div style="float:left;width:'+msgw+'px">'+msg+'</div></div>',
		caption?CAPTION:DONOTHING,caption?caption:DONOTHING,MODAL,
		STICKY, MIDX,0,RELY,200,WIDTH,w,HEIGHT,height?height:100,FGCOLOR,'#FFFFFF', CLOSECLICK,CLOSETEXT,'Close',
		CGBACKGROUND,'/theme/default/image/button_bg_orange.gif',BGCOLOR,'#999999');
	}else{
	overlib('<div style="width:100%;padding-top:5px;" id="wrndlg"><div style="width:54px;float:left"><img src="/theme/default/image/note_warning.jpg" border="0" /></div><div style="float:left;width:'+msgw+'px">'+msg+'</div></div>',
		caption?CAPTION:DONOTHING,caption?caption:DONOTHING,MODAL,
		STICKY, MIDX,0,RELY,200,WIDTH,w,HEIGHT,height?height:100,FGCOLOR,'#FFFFFF', CLOSECLICK,CLOSETEXT,'Close',
		CGBACKGROUND,'/theme/default/image/button_bg_orange.gif',BGCOLOR,'#999999');
	}
}

function infoDialog(msg,caption,width,height){
	w = width?width:400;
	msgw = w - 60;
	if(!overlib2){
		overlib2('<div style="width:100%;padding-top:5px;" id="wrndlg"><div style="width:54px;float:left"><img src="/theme/default/image/note_warning.jpg" border="0" /></div><div style="float:left;width:'+msgw+'px">'+msg+'</div></div>',
			caption?CAPTION:DONOTHING,caption?caption:DONOTHING,MODAL,
			STICKY, MIDX,0,RELY,200,WIDTH,w,HEIGHT,height?height:100,FGCOLOR,'#FFFFFF', CLOSECLICK,CLOSETEXT,'Close',
			CGBACKGROUND,'/theme/default/image/button_bg_green.gif',BGCOLOR,'#999999');
	}else{
		overlib('<div style="width:100%;padding-top:5px;" id="wrndlg"><div style="width:54px;float:left"><img src="/theme/default/image/note_warning.jpg" border="0" /></div><div style="float:left;width:'+msgw+'px">'+msg+'</div></div>',
			caption?CAPTION:DONOTHING,caption?caption:DONOTHING,MODAL,
			STICKY, MIDX,0,RELY,200,WIDTH,w,HEIGHT,height?height:100,FGCOLOR,'#FFFFFF', CLOSECLICK,CLOSETEXT,'Close',
			CGBACKGROUND,'/theme/default/image/button_bg_green.gif',BGCOLOR,'#999999');
	}
}

function getcheckedbox(cfm_msg){
	var boxes = jQuery("input:checkbox");
	var id_arr = new Array();
	if(boxes.length < 1){alert("There are no items to select");return false;}
	var patt = /^check_([\d]+)$/i;
	var id_cnt = 0;
	boxes.each(function(i){
		if(jQuery(this).attr("checked")){
			var arr = patt.exec(jQuery(this).attr("name"));
			if (arr) {
				id_arr[id_cnt] = parseInt(arr[1]);
				id_cnt++;
			}
		}
	});
	
	if(id_arr.length > 0){
		if(cfm_msg.length>0&&!confirm(cfm_msg)) return false;
	}else{
		var warning_msg = arguments.length > 1 ? arguments[1] : 'You did not select any item';
		alert(warning_msg);
		return false;
	}
	return id_arr;
}
function getallinput(type){
	var dml		= document.forms[0];
	var len		= dml.elements.length;
	var elm			= new Array();
	for(var i=0;i<len;i++){
		var e=dml.elements[i];
		if(e.type.toLowerCase()==type)
			elm[i] = e.getAttribute('id');
	}
	return elm;
}
function checkPhone(number){overlib('<div id="phoneresult" align="center" style="padding:0 10px; font-size:11px"><img src=\'/theme/default/image/icon_loading.gif\'>&nbsp;System is loading. Please wait...</div>',STICKY, CAPTION,'Phone Lookup Result',MIDX,0,RELY,50,CLOSETEXT,'',CLOSECLICK,WIDTH,400,HEIGHT,250,FGCOLOR,'#FFFFFF', MODAL,CGBACKGROUND,'/theme/default/image/mi_bg.jpg',BGCOLOR,'#999999');var url='/fraudcheck/checkphone/'+number;OLgetAJAX(url,function(){var res = jQuery.parseJSON(OLresponseAJAX);color = res.risk == 'Low' ? '#01913C' : (res.risk == "Medium" ? '#e56025' : '#cc0000');jQuery('#phoneresult').html('<p style="text-align:left"><span style="font-size:14px"><strong>' + res.number + '</strong>. This telephone number is <span style="font-weight:bold;color:'+color+'">'+res.risk+'</span> risk</span><br/><br/><strong>Telephone Type:</strong> '+res.type+'<br/><strong>City:</strong> '+res.city+'<br/><strong>State:</strong> '+res.state+'<br/><strong>Zip:</strong> '+res.zip+'<br/><strong>Country:</strong> '+res.country+'<br/><strong>Reference ID:</strong> '+res.refid+'<br/><strong>Detailed Description:</strong>'+res.description+'</p><div style="text-align:center;padding-top:10px"><input type="button" class="button_cancel" value="Close" onclick="cClick();" /></div>');});}
function check_all() {var dml= document.forms[0];var len = dml.elements.length;var check_all= dml.check_all;var regex=/^check_([\d]+)$/i;for (var i = 0;i<len;i++) {var e = dml.elements[i];if(regex.exec(e.name))e.checked = dml.all.checked;}}
function formatMessage(message, params) {
	var args = message.split('$arg').length - 1;
	if(args) {
		var parArr = params.split(',');
		for(var i = 1; i < parArr.length; i++) {
			message = message.replace('$arg'+i, parArr[i]);
		}
	}
	return message;
}
//------- jQuery extension functions ------- //

/**
 * @returns date in dd-mm-yyyy format based on user various inputs
 * @params opts {isFlight:boolean}
 */
jQuery.fn.formatDate=function(opts){
	var d=this.val();var now=new Date();var thisYear=now.getFullYear();
	var thisMonth=now.getMonth()+1;var thisDay=now.getDate();
	
	if(jQuery.isPlainObject(opts)){
		var isFlight=(typeof(opts.isFlight)=="undefined")?false:opts.isFlight;
	}else{var isFlight=false;}
	if(isFlight){
		if(/^([0-2]\d|3[0-1])[\.\-\/]?(0\d|1[0-2])$/.exec(d)){
			var day=parseInt(RegExp.$1,10);var month=parseInt(RegExp.$2,10);
			var inPast=((month==thisMonth&&day>=thisDay)||month>thisMonth)?false:true;
			if(inPast) thisYear++;this.val(RegExp.$1+'-'+RegExp.$2+'-'+thisYear);
		}
	}else{
		if(/^(\d{1,2})[\.\-\/](\d{1,2})[\.\-\/](\d{4})$/.exec(d)){
			var day=parseInt(RegExp.$1,10);day=day<10?'0'+day:day+'';
			var month=parseInt(RegExp.$2,10);month=month<10?'0'+month:month+'';
			var year=parseInt(RegExp.$3,10);d=day+month+year;
		}
		if(/^(\d{2})[\.\-\/]?(\d{2})[\.\-\/]?(\d{4})$/.exec(d)) {
			var day=parseInt(RegExp.$1,10);day=day>31?31:day<10?'0'+day:day+'';
			var month=parseInt(RegExp.$2,10);month=month>12?12:month<10?'0'+month:month+'';
			var year=parseInt(RegExp.$3,10); if(year<100) year=year>30?'19'+year:'20'+year;
			this.val(day+'-'+month+'-'+year);
		}
	}
};

function openList(type, fields, title, pagesize, callback){
	var limit = '0,'+pagesize;
	overlib('<div id="listdiv" class="content edit" style="height:550px;overflow:auto;text-align:left;padding:5px">'+
			//'<div id="loading" style="position:relative;top:40%;left:35%;width:30%;text-align:center"><img src=\'/theme/default/image/icon_loading.gif\'>&nbsp;System is loading. Please wait...</div>'+
			'</div>'+
			'<div class="footer" style="clear:both" id="pages">Page: </div>',
			STICKY, CAPTION,title,MIDX,0,RELY,20,
			CLOSECLICK,WIDTH,800,FGCOLOR,'#FFFFFF',MODAL,
			CGBACKGROUND,'/theme/default/image/mi_bg.jpg',BGCOLOR,'#999999');
	_loadList(type, fields, callback, limit);
}

/**
 * @param type: Int - typeid of object to be listed
 * @param callback: String - callback function to invoke when Add button is clicked
 * @param limit: String - start, size
 * @param filter(optional) - filter to apply to the list
 * populate tbody element in popup window with list results
 */
function _loadList(type, fields, callback, limit)
{
	var limits = limit.split(',');
	var lb = parseFloat(limits[0]); var pagesize = parseFloat(limits[1]);	
	if(arguments.length==4){
		var url = "/json/list/"+type+"/"+fields+"/"+limit+'/0/title';
	}else{
		var keywords = arguments[4];
		filter = eval('ekimx'+type+'.generateFilter(\''+keywords+'\')');
		var url = "/json/search/"+type+"/"+fields+"/"+filter+"/"+limit+"/title";
	}
	
	OLgetAJAX(url,function(){
		eval('var res ='+OLresponseAJAX);
		if(wd.getElementById('listtable')) wd.getElementById('listdiv').removeChild(wd.getElementById('listtable'));
		var listTable=wd.createElement('table');listTable.setAttribute('width','100%');listTable.className='adminmlist';
			listTable.setAttribute('border','0');listTable.cellPadding='0';listTable.cellSpacing='0';listTable.setAttribute('id','listtable');
		var listHead=wd.createElement('thead');listBody=wd.createElement('tbody');
		
		eval('var descObj = ekimx'+type+';');
		
		//Populate header row
		var tRow=wd.createElement('tr');
		var numcols=0;
		for(var i in res['cols']){
			var cell=wd.createElement('td');cell.setAttribute('width',descObj[i].width);cell.className='key';
			cell.appendChild(wd.createTextNode(descObj[i].title));tRow.appendChild(cell);
			numcols++;
		}
		var hRow=wd.createElement('tr');var hCell=wd.createElement('td');hCell.colSpan=numcols;hCell.className="head";
			hCell.innerHTML='<div style="float:left;width:120px">Select to Add</div>'+
			'<div style="float:right;vertical-align:middle;">&nbsp;<input class="searchbut" onclick="search('+type+',\''+fields+'\',\''+callback+'\',\''+limit+'\');" value=" Go " type="button"></div>'+
			'<div style="float:right;vertical-align:middle;"><input type="text" size="15" id="f2qsearch" value="'+(keywords?keywords:'')+'" style="vertical-align:middle;border:0px;font-size:8pt;font-weight:normal"></div>'+
			'<div style="float:right;vertical-align:middle;">Search: </div>';
		hRow.appendChild(hCell);
		listHead.appendChild(hRow);listHead.appendChild(tRow);
		
		var count=0;
		// Insert rows into body section of the list
		for(var k in res) {
			if(!isNaN(k)){
				var newR = wd.createElement('tr');newR.setAttribute('id','row_'+k);if(count%2==1) newR.className='hl';
				var stdLink=wd.createElement('a');stdLink.className='ekmaskadd';
				for(var j in res['cols']){
					var cell = wd.createElement('td');
					var link = stdLink.cloneNode(false);
					for(var n in res[k]){
						eval('link.'+n+'='+'res[k].'+n);
					}
					link.onclick=eval(callback);
					link.appendChild(wd.createTextNode(eval('res[k].'+j)));
					cell.appendChild(link);newR.appendChild(cell);
				}
				listBody.appendChild(newR);count++;
			}
		}
		
		listTable.appendChild(listHead);listTable.appendChild(listBody);
		wd.getElementById('listdiv').appendChild(listTable);
		// generate pages
		var total = parseFloat(res['count']);
		var numpage = Math.ceil(total/pagesize);
		var curpage = Math.floor(lb/pagesize) + 1;
		wd.getElementById('pages').innerHTML='';
		if(numpage > 1) {
			var fst = curpage>1?'<a href="javascript:void(0)" onclick="_loadList(\''+type+',\''+fields+'\',\''+callback+'\',\'0,'+pagesize+'\''+(keywords?',\''+keywords+'\'':'')+')">First</a>&nbsp;':'First&nbsp;';
			var prev = curpage>1?'<a href="javascript:void(0)" onclick="_loadList(\''+type+'\',\''+fields+'\',\''+callback+'\',\''+(curpage-2)*pagesize+','+pagesize+'\''+(keywords?',\''+keywords+'\'':'')+')">Prev</a>&nbsp;':'Prev&nbsp;';
			jQuery('#pages').append(fst);
			jQuery('#pages').append(prev);
			for(var i = 1; i <= numpage; i++){
				var page = i!=curpage?'<a href="javascript:void(0)" onclick="_loadList(\''+type+'\',\''+fields+'\',\''+callback+'\',\''+(i-1)*pagesize+','+pagesize+'\''+(keywords?',\''+keywords+'\'':'')+')">'+i+'</a>&nbsp;':i+'&nbsp;';
				if(i%30 == 0) page += '<br/>';
				jQuery('#pages').append(page);
			}
			var nxt=curpage<numpage?'<a href="javascript:void(0)" onclick="_loadList(\''+type+'\',\''+fields+'\',\''+callback+'\',\''+curpage*pagesize+','+pagesize+'\''+(keywords?',\''+keywords+'\'':'')+')">Next</a>&nbsp;':'Next&nbsp;';
			var last=curpage<numpage?'<a href="javascript:void(0)" onclick="_loadList(\''+type+'\',\''+fields+'\',\''+callback+'\',\''+(numpage-1)*pagesize+','+pagesize+'\''+(keywords?',\''+keywords+'\'':'')+')">Last</a>':'Last';
			jQuery('#pages').append(nxt);
			jQuery('#pages').append(last);
		}
		//wd.getElementById('loading').style.display='none';
	}
	);
}

function addToCart (elm, cart, loader, replace) {
	var $elm = jQuery(elm);
	var id = jQuery(elm).attr('name').match (/\d+/);
	var ischange='';
	var qtyvalue='';
	var pid='';
	var isquickshop=false;	
	var height=150;
	var emptycart = 0;
	if(jQuery('#listprod').length>0){
		jQuery('#mes_add_to_cart').html('');
		listprods=jQuery('#listprod').val();
		oldcartqtys=jQuery('#oldcartqty').val();
		prodarr=listprods.split(",");
		oldqtyarr=oldcartqtys.split(",");
		
		for(var i=0;i<prodarr.length;i++){
			value = jQuery('#qty_'+prodarr[i]).val();
		
			if(isNaN(value) || value==''){
				jQuery('#mes_add_to_cart').html(messages.quickshop.isnumber);
				return false;
			}else{
				if(value>0){ 
					pid = pid + prodarr[i] + ',';
					qtyvalue = qtyvalue + value + ',';
					if(oldqtyarr[i] != value){
						height = height + 40;
						ischange = ischange + prodarr[i] + ',';
					}
				}else{
					if(oldqtyarr[i] != 0){
						jQuery('#mes_add_to_cart').html(messages.quickshop.isnumber);
						return false;
					}else{
						emptycart = emptycart + 1;
					}
				}
			}
			//check for select empty cart
			if(emptycart == prodarr.length){
				jQuery('#mes_add_to_cart').html(messages.quickshop.notempty);
				return false;
			}
		}

		if(pid.lastIndexOf(",") == pid.length-1){
			pid = pid.substring(0,pid.length-1);
		}
		if(qtyvalue.lastIndexOf(",") == qtyvalue.length-1){
			qtyvalue = qtyvalue.substring(0,qtyvalue.length-1);
		}
		if(ischange.lastIndexOf(",") == ischange.length-1){ ischange = ischange.substring(0,ischange.length-1);
		}
		isquickshop=true;
		
	}else{
		var pid=id[0];
	}

	loader = loader?jQuery(loader):null;
	if(replace) {
		jQuery(elm).replaceWith (loader);
	} else
		jQuery(elm).after (loader); 
	var requestData = {prodid:pid};
	if (jQuery.trim(qtyvalue) != '') requestData.qty = qtyvalue;
	if (jQuery.trim(ischange) != '') requestData.prodchange = ischange;
	requestData.quickshop=isquickshop;
	
	jQuery.ajax ({
		url:'/json/addToCart',
		data: requestData,
		dataType:'json',
		success: function (response) {
			if (response['result'].indexOf(cart))
                $(cart).replaceWith (response['result']);
            else
                jQuery(cart).html (jQuery.trim(response['result']));
            if (!loader) return true;
			if (replace) {
				loader.replaceWith ($elm);
			} else
				loader.remove();
            if (window.updateCartContent) updateCartContent (response['cart'], true);
            // Update minicart in fixed bar if used
            var itmList = jQuery('.jx_cart').find('ul:first');
            if (itmList.length) {
                jQuery(itmList[0]).replaceWith(response['itemlist']);
            }else
            	jQuery('.jx_cart').append(response['itemlist']);
            if (response['cartpay']) $('.jx_cart').parent('ul').after($.trim(response['cartpay']));
            //form after quickshop if success
            if(isquickshop){
            	jQuery('#frmCart').hide('fast');
            	if(jQuery(elm).attr('rel')) overlibTitle = jQuery(elm).attr('rel');
            	else overlibTitle = messages.quickshop.title;
            	overlibshow($('#afterCart').html(),overlibTitle,'static','350',height);    
            	jQuery('#buyitem').html(response['thank']);
            }
            
		}
	});
	return false;
}
function displayProd(prodgrp,prod){
	jQuery.ajax ({
		url:'/json/dispProd',
		data: {prodgrpid:prodgrp,prod:prod},
		dataType:'json',
		success: function (response) {
			jQuery('#getprice').html (response['price']);     
			jQuery('#qty').val (response['cartqty']);     
		}
	});
	return false;
}

function increment(id){
	var maxqty = arguments.length > 1 ? arguments[1] : 500;
	var v = parseInt(jQuery('#'+id).val(), 10) + 1;
	if(v > maxqty) v = maxqty;
	jQuery('#'+id).val(v);
}

function decrement(id){
	var v = parseInt(jQuery('#'+id).val(), 10) - 1;
	if(v < 0) v = 0;
	jQuery('#'+id).val(v);
}
function getLanguage () {
    var lang = '';
    if (jQuery.cookie ('lang')) {
        lang = $.cookie('lang');
    }else{
        jQuery('.langlink').each (function(){
            if (jQuery(this).parent('li').hasClass('active')) {
                lang = $(this).attr('rel');
            }
        });
    }
    lang = (lang !== '') ? lang.toLowerCase () : 'vn';
    return lang;
}
function setLanguage(lang){
	jQuery.cookie ('lang', lang);
}
function mlistSubscribe () {
    var captcha = $('input.htmlIcaptcha').val();
    var mlists = $('input[id^="mlist_"]');
    var ul = mlists.parents ('ul');
    var data = {captcha:captcha,email:$('.newsletter .email').val()};
    var subcribedList = [];
    if (mlists.length > 0) {
        mlists.live ('click', function(e){
            if ($(this).attr('checked')) ul.next('div.error').remove();
        });
        if (mlists.filter('[checked]').length == 0) {
            ul.after ("<div class='error'>"+messages.mlistunchecked+"</div>");
            return false;
        }
        mlists.filter('[checked]').each(function(i,el){
            subcribedList.push ($(el).attr('id'));
        });
        data.mlists = subcribedList;
    }
    $.post ('/mlist/mlistSubscribe',data,function(res){
        if (res['error']) {
            $('img.captcha').parent('div').after ('<div class="error">'+res['error']+'</div>');
        } else {
            $('div.newsletter').html(res['msg']);
        }
    },'json');
    return false;
}
function loadCaptcha() {
    var rand = Math.random();
    $.post ('/mlist/loadCaptcha?rand='+rand,function(data){
        $('div.captchawrapper').replaceWith(data);
    });
}
function dec2Hex(dec) {
    dec = parseInt(dec, 10);
    if (!isNaN(dec)) {
        hexChars = "0123456789ABCDEF";
        if (dec > 255) {
            return "Out of Range";
        }
        var i = dec % 16;
        var j = (dec - i) / 16;
        result = "0x";
        result += hexChars.charAt(j) + hexChars.charAt(i);
        return result;
    } else {
        return NaN;
    }
}

