var err_img = '<img src="img/admin/chk_err.gif" width="13" align="absmiddle">';
var loadingImg = '<img src="img/loading.gif" align="absmiddle">';
var mouseupSave = true;
//======================================================================
//======================================================================
function valiCode(id,a) {
	if ($(id+'div')) {
		var code = randStr(5,'CHARNUM');
		$(id+'div').setContent('<img src="authimg.php?code='+code+'" onclick="valiCode(\''+id+'\',\'C\')">');
		$('session_'+id).setContent(code);
	}
}

/***************************************************************************************************************************
 CATEGORY COMBO BOX
***************************************************************************************************************************/
function catCombo(o, mid,cid,div,t) {
	o = $(o);
	t = isEmpty(t) ? (mid == 0 ? 'global' : 'shop') : t;
	var goOn = true;
	var cname = o ? o.getAttribute('catname') : null;
	
	if (t == 'global' || t == 'help') {
		cidTxt = 'c_id';
		cnameTxt = 'c_name';
	} else if (t == 'shop') {
		cidTxt = 'sc_id';
		cnameTxt = 'sc_name';
		if (!$(cidTxt)) cidTxt = 'c_id';
		if (!$(cnameTxt)) cnameTxt = 'c_name';
	}
	
	if(cid == $V(cidTxt) && o) {
		o.setStyles({
			backgroundColor : 'transparent',
			borderTop : '1px solid #ffffff',
			borderBottom : '1px solid #ffffff'
		});
		
		$(cidTxt).value = o.getAttribute('parent') == 0 && $(cidTxt).getAttribute('required') ? '' : o.getAttribute('parent');
		
		if (o.getAttribute('parent') == 0 && $(cidTxt).getAttribute('required')) $(cnameTxt).innerHTML = lg('ss_select');
		else if (o.getAttribute('parent') == 0) $(cnameTxt).innerHTML = lg('cat_parenttop');
		else $(cnameTxt).innerHTML = $(o.getAttribute('parent')).getAttribute('catname');
		if (div) $(div).clrContent();
		return;
	}
	
	if(isEmpty(cname)) {
		if ($(div).innerHTML != '') {
			goOn = false;
			$(div).toggle();
			// ($(div).isHide()) ? $(div).show() : $(div).hide();
		} else {
			$(div).show();
		}
	}
	
	if (goOn) {
		if (o) {
			var parent = o.parentNode;
			var child = $(parent).getChilds();
			for(i=0;i<child.length;i++) {
				child[i].setStyles({
					backgroundColor : 'transparent',
					borderTop : '1px solid #ffffff',
					borderBottom : '1px solid #ffffff'
				});
			}
			o.setStyles({
				backgroundColor : '#e6f2ff',
				borderTop : '1px solid #cae4ff',
				borderBottom : '1px solid #cae4ff'
			});
		}
		$(cidTxt).setContent(cid);
		if(cname) $(cnameTxt).setContent(cname);
		
		if(div) {
			$(div).setContent('<div class="catComboLoad">'+lg('msg_processing')+'<br><img src="img/loading.gif" align="absmiddle"></div>');
			var a = new myAjax({
				method : 'POST',
				url : INC_URL + 'loadcontent.php?act=catCombo&cid='+cid+'&mid='+mid+'&t='+t,
				success : function(dt) {
					if(mid && cid == 0 && dt == 'NORECORD') {
						$(cidTxt).setContent('');
						$(div).setContent('<div class="catComboNorec">'+lg('err_norecord') + '<br>'+lg('err_cat_clicktoadd') + '</div>');
					} else $(div).setContent(dt);
				}
			}).send();
		}
	}
	
}

function showSubCat(mid,cid,cnt) {
	if ($('cat_'+cid).innerHTML == '') {
		$('cat_'+cid).setContent(lg('msg_processing')+'<br><img src="img/loading.gif" align="absmiddle">');
		var a = new myAjax({
			method : 'POST',
			url : INC_URL + 'loadcontent.php?act=subcat&cid='+cid+'&mid='+mid+'&cnt='+cnt,
			success : function(dt) {
				$('cat_'+cid).setContent(dt);
				$('img_'+cid).className = $('cat_'+cid).isHide() ? 'btnDown' : 'btnUp';
			}
		}).send();
		// a.method = 'POST';
		// a.url = 'loadcontent.php?act=subcat&cid='+cid+'&mid='+mid+'&cnt='+cnt;
		// a.success = function(dt) {
			// $('cat_'+cid).setContent(dt);
			// $('img_'+cid).className = $('cat_'+cid).isHide() ? 'btnDown' : 'btnUp';
		// };
		// a.send();
	} else {
		$('cat_'+cid).toggle();
		$('img_'+cid).className = $('cat_'+cid).isHide() ? 'btnDown' : 'btnUp';
	}
}

function updateNotice(chk) {
	var cat = chk.name;
	var isChk = chk.checked;
	var n_i = $('n_i').checked ? true : false;
	var n_o = $('n_o').checked ? true : false;
	if(cat == 'n_i') isChk = n_i;
	else if(cat == 'n_o') isChk = n_o;
	
	var dateObj = new Array();
	var noticeObj = new Array();
	
	var obj = getElements({tagName : 'DIV', className : 'noticelist'});
	for(var i=0;i<obj.length;i++) {
		var child = obj[i].getChilds({className : 'noticedate'});
		for(var j=0;j<child.length;j++) {
			dateObj[i] = child[j];
			noticeObj[i] = new Array();
		}
		
		var child = obj[i].getChilds({className : 'notice'});
		for(j=0;j<child.length;j++) {
			if (isUndefined(noticeObj[i])) noticeObj[i] = new Array();
			noticeObj[i][j] = child[j];
		}
	}
	
	for(i=0;i<dateObj.length;i++) {
		for(j=0;j<noticeObj[i].length;j++) {
			if (cat == 'n_i' || cat == 'n_o') {
				if (instr(cat+'_',noticeObj[i][j].id)) {
					var c = noticeObj[i][j].id.replace(cat+'_','');
					isChk = $(c).checked;
					var tf = true;
					if(n_i && instr('n_i_',noticeObj[i][j].id) && isChk) { noticeObj[i][j].show(); tf = false; }
					if(n_o && instr('n_o_',noticeObj[i][j].id) && isChk) { noticeObj[i][j].show(); tf = false; }

					if(tf) noticeObj[i][j].style.display = 'none';
				}
			} else {
				if (instr('_'+cat,noticeObj[i][j].id)) {
					var tf = true;
					if(n_i && instr('n_i_',noticeObj[i][j].id) && isChk) { noticeObj[i][j].show(); tf = false; }
					if(n_o && instr('n_o_',noticeObj[i][j].id) && isChk) { noticeObj[i][j].show(); tf = false; }

					if(tf) noticeObj[i][j].hide();
				}
			}
		}
	}
	
	showEmpty = true;
	for(i=0;i<dateObj.length;i++) {
		var show = false;
		for(j=0;j<noticeObj[i].length;j++) {
			if (!noticeObj[i][j].isHide()) show = true;
		}
		dateObj[i].parentNode.style.display = show ? '' : 'none';
		if (show) showEmpty = false;
	}
	
	$('norec').style.display = showEmpty ? '' : 'none';
		
	v = chk.checked ? '1' : '0';
	var a = new myAjax({
		method : 'POST',
		asyn : false,
		url : INC_URL + 'updatecontent.php?act=updateNotice&cat='+cat+'&v='+v
	}).send();
}

/******** SET ACTIVE TIME ********************************************************************************************/
function setActive(){
	var a = new myAjax({
		method : 'POST',
		url : INC_URL + 'bgwork.php',
		param : 't=activeTime',
		success : function() { setTimeout('setActive()',10000); }
	}).send();
}

function noticeStatus(t,id){
	$('latestnotice').removeChild($('lnotice_'+id));
	
	var obj = $T('DIV');
	var k = 1;
	var newnote = 0;
	for(i=0;i<obj.length;i++) {
		// if (!isUndefined(obj[i].name)) {
			if (obj[i].name == 'lnotice' || instr('lnotice_',obj[i].id)) {
				newnote++;
				(k <= 5) ? obj[i].show() : obj[i].hide();
				k++;
			}
		// }
	}
	if (k <= 1) $('nonotice').show();
	$('newNotice').innerHTML = newnote > 0 ? newnote : 0;
	var p = 'act='+t + (isEmpty(id) ? '' : '&id='+id);
	bgWork('updateNotice',p);
}

function delPhoto(id) {
	$('cat_name_'+id).setContent('-');
	$('image_'+id).clrContent();
}

function saveSetting() {
	var theme = getSort();
	var p = 'left='+theme.sort.left+'&right='+theme.sort.right+'&center='+theme.sort.center;
	p += '&cleft='+theme.color.left+'&cright='+theme.color.right+'&ccenter='+theme.color.center;
	var type = $(dragCon).className.replace('conType','');
	p += '&type='+type;
	bgWork('saveLayout',p);
}


function bgWork(t,param){
	param = isEmpty(param) ? '' : param;
	var a = new myAjax({
		method : 'POST',
		url : INC_URL + 'bgwork.php',
		data : param,
		param : 't='+t,
		asyn : false
	}).send();
}

// function loadCategory(o) {
	// $ce('DIV').setAttributes({id : 'tmpabc'}).appendTo(document.body)
	// var a = new myAjax({
		// method : 'POST',
		// data : 'type='+o.type+'&cid='+o.cid+'&mid='+o.mid+'&sc='+o.sc+'&id='+o.id,
		// url : 'loadcategory.php',
		// success : function(dt) {
			// // $('tmpabc').setContent(nohtml(dt));
			// var tr = dt.getElementsByTagName('tr');
			// // alert(tr.length);
			// for(var i=0;i<tr.length;i++) {
				// var v = o;
				// for(var j=0;j<tr[i].childNodes.length;j++) v[tr[i].childNodes[j].tagName] = tr[i].childNodes[j].firstChild.nodeValue;
				// appendCategory(o.mid,o.cid,(o.sc+1),v);
			// }
			// // var root = dt.getElementsByTagName('root')[0];
			// // alert(dt.getElementsByTagName('tr')[0].getElementsByTagName('td')[0].firstChild.nodeValue);
			// // for(var i in dt) $('tmpabc').addContent(i + ' => ' + dt[i] + '<br>');
		// }
	// }).send();
// }

function getSearchKey(obj) {
	var hstype = $('hstype').getContent();
	var key = $(obj).getContent();
	var tid = $(obj).id;
	
	if(!$('searchDIV')) {
		var div = $ce('DIV').setAttributes({id : 'searchDIV'}).setStyles({className: 'divbox', width : '294px'}).appendTo(document.body);
		
		if (isIE) div.setStyles({ left : getElePos(obj).x + 3 + 'px', top : getElePos(obj).y + 28 + 'px' });
		else div.setStyles({ left : getElePos(obj).x + 0 + 'px', top : getElePos(obj).y + 25 + 'px' });

		eventPush(document,'mousedown',function(ev) {
			if ($('searchDIV'))  {
				ev         = ev || window.event;
				var target = ev.target || ev.srcElement;

				if(target.id != 'searchDIV' && target.parentNode.id != 'searchDIV' && target.id != tid) $('searchDIV').hide();
			}
		});
	}
	
	if (!isEmpty(key)) {
		var a = new myAjax({
			method : 'POST',
			data : 'keywords='+key,
			url : INC_URL + 'search.php?type='+hstype+'&id='+$(obj).id+'&act=suggest',
			success : function(dt) {
				$('searchDIV').setContent(dt).show();
				// if($('searchDIV').offsetHeight > 200) $('searchDIV').setStyles({height: '200px', overflow : 'auto'});
				// else $('searchDIV').setStyles({height: 'auto', overflow : 'hidden'});
			}
		}).send();
	} else {
		$('searchDIV').setContent('<div id="norec">'+lg('err_search_empty')+'</div>').show();
	}
}

function loadContent(t,id,param,loading,func) {
	loading = isEmpty(loading) ? false : true;
	if(typeof(func) == 'function') func();
	
	if (loading) $(id).setContent(lg('msg_processing')+'<br><img src="img/loading.gif" align="absmiddle"><div style="font-size:50px">&nbsp;</div>');
	var a = new myAjax({
		method : 'POST',
		data : param,
		url : INC_URL + 'loadcontent.php?act='+t,
		success : function(dt) {
			$(id).setContent(dt);
			if(window.name == 'myprofile') parent.resizeIframe(parent.$(window.name));
			setForm();
		}
	}).send();
}

function loadFile(file,id,param,loading,func) {
	loading = isEmpty(loading) ? false : true;
	if(typeof(func) == 'function') func();
	
	if (loading) $(id).setContent(lg('msg_processing')+'<br><img src="img/loading.gif" align="absmiddle"><div style="font-size:50px">&nbsp;</div>');
	var a = new myAjax({
		method : 'POST',
		data : param,
		url : INC_URL + file,
		success : function(dt) {
			$(id).setContent(dt);
			setForm();
		}
	}).send();
}

function clickToShow(t,id) {
	var rowID = 'listrow_'+id;
	var listID = 'list_'+id;
	if ($(rowID)) {
		if ($(rowID).isShow()) {
			$(rowID).hide();
			if(window.name == 'myprofile') parent.resizeIframe(parent.$(window.name));
		} else {
			var obj = $T('TR',{'row' : 'list'});
			for(i=0;i<obj.length;i++) obj[i].hide();
			$(rowID).show(2);
			if(window.name == 'myprofile') parent.resizeIframe(parent.$(window.name));
			var rowChild = $(rowID).getChilds({tagName : 'TD'})[0];

			if (rowChild.getContent() == '') {
				rowChild.setContent(lg('msg_edit_processing')+'<br><img src="img/loading.gif" align="absmiddle">');
				var a = new myAjax({
					method : 'POST',
					data : 'id='+id,
					url : INC_URL + 'loadcontent.php?act='+t,
					success : function(dt) {
						if (rowChild) {
							rowChild.setContent(dt);
							// $(rowID).childNodes[0].innerHTML = dt;
							if(t == 'sms') {
								var child = $(listID).getChilds({tagName : 'TD'});
								for(i=0;i<child.length;i++) {
									try {
										var tmp = child[i].getContent();
										tmp = tmp.replaceText({'<b>' : '', '</b>' : '', '<B>' : '', '</B>' : ''});
										// tmp = tmp.replace('<b>','');
										// tmp = tmp.replace('</b>','');
										// tmp = tmp.replace('<B>','');
										// tmp = tmp.replace('</B>','');
										child[i].setContent(tmp);
									} catch(e) {}
								}
							}
						}
						// alert(parent.document.frames[window.name].document.body.scrollHeight);
						if(window.name == 'myprofile') parent.resizeIframe(parent.$(window.name));
						setForm();
					}
				}).send();
			}
		}
	}
}

//======================================================================
//======================================================================
function updateCart(obj, arr) {
	$('loading_'+arr.s_id).setContent(lg('msg_edit_processing')+'<br><img src="img/loading.gif" align="absmiddle">');
	obj.className = 'txtbox';
	
	var qty = obj.value;
	if (qty <= 0 || !isNum(qty)) {
		obj.className = 'txtboxErr';
		$('loading_'+arr.s_id).clrContent();
		return;
	}
	
	if ($('qty_'+arr.s_id+'_'+arr.c).getContent() == $('oqty_'+arr.s_id+'_'+arr.c).getContent()) {
		$('loading_'+arr.s_id).setContent('');
		showCheckout(arr.s_id);
		return;
	}
	
	var a = new myAjax({
		method : 'POST',
		data : 'qty='+qty+'&size='+arr.size+'&color='+arr.color+'&p_id='+arr.p_id+'&s_id='+arr.s_id,
		url : INC_URL + 'order.php?act=chkStock',
		success : function(dt) {
			var ar = dt.split('@#~!');
			if(ar[1] == 'OUT_OF_STOCK') {
				// obj.className = 'txtboxErr';
				obj.value = $('oqty_'+arr.s_id+'_'+arr.c).value;
				updateCount(obj,arr.s_id,arr.c,arr.up);
				$('loading_'+arr.s_id).innerHTML = '<img src="img/cross.gif" align="absmiddle"> '+lg('err_order_outofstock');
			} else if(ar[1] == 'OUT_OF_STOCK_PREORDER_OFF') {
				obj.value = $('oqty_'+arr.s_id+'_'+arr.c).value;
				updateCount(obj,arr.s_id,arr.c,arr.up);
				$('loading_'+arr.s_id).innerHTML = '<img src="img/cross.gif" align="absmiddle"> '+lg('err_order_outofstock_off');
			} else if(ar[1] == 'OUT_OF_STOCK_PREORDER') {
				if(getCookie('preorder_pop') == 'Y') {
					$('oqty_'+arr.s_id+'_'+arr.c).value = obj.value;
					addCart('update',qty,arr.size,arr.color,arr.p_id,arr.s_id);
					obj.className = 'txtbox';
				} else {
					var dialog = new ezDialog();
					dialog.type = 2;
					dialog.button = 2;
					dialog.title = lg('msg_order_confirmaddtitle');
					// dialog.msg = lg('msg_order_confirmadd')+'<br><label><input type="checkbox" id="notshow" name="notshow" value="Y">&nbsp;' + lg('donotshow') + '</label> '+lg('orderautopreorder');
					dialog.msg = lg('msg_order_confirmadd',ar[0]);
					dialog.onOK = function() { 
						// if($('notshow').checked) setCookie('preorder_pop','Y',30);
						$('oqty_'+arr.s_id+'_'+arr.c).value = obj.value;
						addCart('update',qty,arr.size,arr.color,arr.p_id,arr.s_id);
						updateCount(obj,arr.s_id,arr.c,arr.up);
						showCheckout(arr.s_id);
					};
					dialog.onCancel = dialog.beforeClose = function() { 
															// if($('notshow').checked) setCookie('preorder_pop','Y',30);
															obj.value = $V('oqty_'+arr.s_id+'_'+arr.c);
															updateCount(obj,arr.s_id,arr.c,arr.up);
															$('loading_'+arr.s_id).clrContent();
															showCheckout(arr.s_id);
					};
					dialog.show();
				}
			} else if(ar[1] == 'SUCCESS') {
				$('oqty_'+arr.s_id+'_'+arr.c).value = obj.value;
				addCart('update',qty,arr.size,arr.color,arr.p_id,arr.s_id);
				$('loading_'+arr.s_id).clrContent();
			}
			showCheckout(arr.s_id);
		}
	}).send();
}

function takeOrder(id){
	$('orderLoading').setContent(lg('msg_order_processing')+'<br><img src="img/loading.gif" align="absmiddle">');
	var qty = $V('qty');
	var size = $V('size');
	var color = $V('color');
	var p_id = $V('p_id');
	var s_id = $V('s_id');
	if (qty <= 0 || !isNum(qty)) {
		$('qty').className = 'txtboxErr';
		setValue('ordercount','<span style="color:#EF0000">'+lg('err_order_invalidqty')+'</span>');
		$('orderLoading').clrContent();
		return;
	}
	
	var a = new myAjax({
		method : 'POST',
		data : 'qty='+qty+'&size='+size+'&color='+color+'&p_id='+p_id+'&s_id='+s_id,
		url : INC_URL + 'order.php?act=chkStock',
		success : function(dt) {
			var ar = dt.split('@#~!');
			
			if(ar[1] == 'OWN_PRODUCT') {
				$('orderLoading').setContent('<img src="img/cross.gif" align="absmiddle"> '+lg('err_order_own'));
			} else if(ar[1] == 'OUT_OF_STOCK') {
				$('orderLoading').setContent('<img src="img/cross.gif" align="absmiddle"> '+lg('err_order_outofstock'));
			} else if(ar[1] == 'OUT_OF_STOCK_PREORDER_OFF') {
				$('orderLoading').setContent('<img src="img/cross.gif" align="absmiddle"> '+lg('err_order_outofstock_off'));
			} else if(ar[1] == 'OUT_OF_STOCK_PREORDER') {
				var dialog = new ezDialog();
				dialog.type = 2;
				dialog.button = 2;
				dialog.title = lg('msg_order_confirmaddtitle');
				dialog.msg = lg('msg_order_confirmadd',ar[0]);
				dialog.onOK = function() { 
														// if($('notshow').checked) setCookie('preorder_pop','Y',30);
														addCart('add',qty,size,color,p_id,s_id);
				};
				dialog.onCancel = function() { 
														// if($('notshow').checked) setCookie('preorder_pop','Y',30);
														$('orderLoading').clrContent();
				};
				dialog.show();
			} else if(ar[1] == 'SUCCESS') {
				addCart('add',qty,size,color,p_id,s_id);
			} else {
				$('orderLoading').clrContent();
			}
		}
	}).send();
}

function addCart(t,qty,size,color,p_id,s_id) {
	var a = new myAjax({
		method : 'POST',
		data : 'qty='+qty+'&size='+size+'&color='+color+'&p_id='+p_id+'&s_id='+s_id,
		url : INC_URL + 'order.php?act=addCart',
		success : function(dt) {
			if (t == 'add') {
				if(dt == 'OWN_PRODUCT') {
					$('orderLoading').setContent('<img src="img/cross.gif" align="absmiddle"> '+lg('err_order_own'));
				} else {
					var ar = dt.split('@#~!');
					var arg = ar[1].split('~!@#');
					$('orderLoading').setContent('<img src="img/tick.gif" align="absmiddle"> '+lg('msg_order_successadd'));
					$('shoppingCart').setContent('<img src="img/cart.gif" align="absmiddle"> '+lg('shopping_cart',arg));
				}
			} else {
				if(dt == 'OWN_PRODUCT') {
					$('loading_'+s_id).setContent('<img src="img/cross.gif" align="absmiddle"> '+lg('err_order_own'));
				} else {
					var ar = dt.split('@#~!');
					var arg = ar[1].split('~!@#');
					$('type_'+s_id).setContent(ar[0]);
					$('loading_'+s_id).clrContent();
					$('shoppingCart').setContent('<img src="img/cart.gif" align="absmiddle"> '+lg('shopping_cart',arg));
				}
			}
		}
	}).send();
}

function removeCart(arr) {
	$('loading_'+arr.s_id).setContent(lg('msg_edit_processing')+'<br><img src="img/loading.gif" align="absmiddle">');
	var a = new myAjax({
		method : 'POST',
		data : 'size='+arr.size+'&color='+arr.color+'&p_id='+arr.p_id+'&s_id='+arr.s_id,
		url : INC_URL + 'order.php?act=remove',
		success : function(dt) {
			var ar = dt.split('@#~!');
			var arg = ar[1].split('~!@#');

			if(ar[0] == 'SUCCESS') {
				updateTotal(arr.s_id,arr.c);
				$('row_'+arr.s_id+'_'+arr.c).remove();
				$('loading_'+arr.s_id).setContent('<img src="img/tick.gif" align="absmiddle"> '+ lg('msg_order_successremove'));
				$('shoppingCart').setContent('<img src="img/cart.gif" align="absmiddle"> '+lg('shopping_cart',arg));
			} else if(ar[0] == 'SUCCESS_BLANK' || ar[0] == 'BLANK') {
				$('table_'+arr.s_id).remove();
				// removeRow('table_'+arr.s_id,'itemcart');
				$('shoppingCart').setContent('<img src="img/cart.gif" align="absmiddle"> '+lg('shopping_cart',arg));
				if(ar[0] == 'BLANK') {
					$('itemcart').hide();
					$('blankcart').show();
				}
			} else if(ar[0] == 'INVALID_PRODUCT_ID') {
				$('loading_'+arr.s_id).setContent('<img src="img/cross.gif" align="absmiddle"> '+lg('msg_order_errpid'));
			}
		}
	}).send();
}

function updateStatus(p,c,id){
	if($('onClickAct')) $('onClickAct').show();
	var a = new myAjax({
		method : 'POST',
		url : INC_URL + 'updatestatus.php?'+p,
		success : function(dt) {
			var img = 'onclick_'+c+'_'+id;
			if($(img)) $(img).src = dt;
			if($('onClickAct')) $('onClickAct').hide();
		}
	}).send();
}

function addProduct(id){
	var v = {
		id : id,
		own : lg('err_addfavproduct_own'),
		success : lg('msg_addfavproduct_success'),
		exist : lg('err_addfavproduct_exist'),
		notexist : ''
	};
	addFavorite('product',v);
}

function addFavorite(t,v){
	if (t == 'product') div = 'orderLoading';
	else div = 'success';
	
	if (t != 'product') {
		$(div).className = 'absDivRed';
		$(div).show(1);
	}
	$(div).innerHTML = lg('msg_edit_processing')+'<br><img src="'+INC_URL+'img/loading.gif" align="absmiddle">';
	
	var a = new myAjax({
		method : 'POST',
		data : 'id='+v.id,
		url : INC_URL + 'addfavorite.php?act='+t,
		success : function(dt) {
			// alert(dt);
			if(dt == 'OWN') {
				$(div).setContent('<img src="'+INC_URL+'img/cross.gif" align="absmiddle"> ' + v.own);
			} else if(dt == 'SUCCESS') {
				if (t != 'product') $(div).className = 'absDivGreen';
				$(div).setContent('<img src="'+INC_URL+'img/tick.gif" align="absmiddle"> ' + v.success);
			} else if(dt == 'EXIST') {
				$(div).setContent('<img src="'+INC_URL+'img/cross.gif" align="absmiddle"> ' + v.exist);
			} else if(dt == 'NOT_EXIST') {
				$(div).setContent('<img src="'+INC_URL+'img/cross.gif" align="absmiddle"> ' + v.notexist);
			} else if(dt == 'LOGIN') {
				$(div).setContent('<img src="'+INC_URL+'img/cross.gif" align="absmiddle"> ' + lg('msg_please_login'));
			} else {
				$(div).setContent('<img src="'+INC_URL+'img/cross.gif" align="absmiddle"> ' + lg('err_unknown'));
			}
			
			if (t != 'product') {
				str = '$("success").hide();';
				setTimeout(str,3000);
			}
		}
	}).send();
}

function addShop(id){
	var v = {
		id : id,
		own : lg('err_addshop_own'),
		success : lg('msg_addshop_success'),
		exist : lg('err_addshop_exist'),
		notexist : lg('err_addshop_nonexist')
	};
	addFavorite('shop',v);
}

function addFriend(id){
	var v = {
		id : id,
		own : lg('err_addfriends_own'),
		success : lg('msg_addfriends_success'),
		exist : lg('err_addfriends_exist'),
		notexist : lg('err_addfriends_nonexist')
	};
	addFavorite('friend',v);
}

function delVoucherCode(sid,i) {
	if ($('vdiv_'+i)) {
		var code = $V('vouchercode_'+i);
		var a = new myAjax({
			method : 'POST',
			data : 'sid='+sid+'&code='+code,
			url : INC_URL + 'order.php?act=delvoucher',
			success : function(dt) {
				var ar = dt.split('@#~!');

				if(ar[0] == 'SUCCESS') {
					if (!ismultivoucher && ar[1] <= 0) newVoucher(sid);
					$('vdiv_'+i).remove();
					updateVoucher();
				}
			}
		}).send();
	}
}

function chkVoucherCode(sid,i) {
	var code = $('vouchercode_'+i).getContent();
	if (isEmpty(code)) {
		$('voucherMsg_'+i).setContent('&nbsp;<img src="'+INC_URL+'img/cross.gif" align="absmiddle"> ' + lg('err_empty',lg('voucher_code')));
		return;
	} else {
		$('vouchercode_'+i).disabled = true;
		$('use_'+i).disabled = true;
		$('voucherMsg_'+i).setContent(lg('msg_edit_processing')+'&nbsp;<img src="'+INC_URL+'img/loading.gif" align="absmiddle">');
	}
	
	var a = new myAjax({
		method : 'POST',
		data : 'sid='+sid+'&code='+code,
		url : INC_URL + 'order.php?act=chkvoucher',
		success : function(dt) {
			var ar = dt.split('@#~!');
			
			$('vouchercode_'+i).disabled = false;
			$('use_'+i).disabled = false;
			
			if(ar[0] == 'VALID') {
				$('vouchercode_'+i).readOnly = true;
				$('vouchercode_'+i).style.border = '1px solid white';
				$('voucheramount_'+i).value = ar[1];
				$('use_'+i).hide();
				$('voucherMsg_'+i).setContent('&nbsp;<img src="'+INC_URL+'img/tick.gif" align="absmiddle"> ' + lg('voucher_voucher_success',ar[1]));
				$('voucherdel_'+i).show(1);
				
				if (ismultivoucher) newVoucher(sid);
				updateVoucher();
			} else if(ar[0] == 'INVALID') {
				$('voucherMsg_'+i).setContent('&nbsp;<img src="'+INC_URL+'img/cross.gif" align="absmiddle"> ' + lg('voucher_voucher_failed'));
			} else if(ar[0] == 'USED') {
				$('voucherMsg_'+i).setContent('&nbsp;<img src="'+INC_URL+'img/cross.gif" align="absmiddle"> ' + lg('voucher_voucher_used'));
			} else if(ar[0] == 'DENIED') {
				var efrm = new eForm(document.cfrm).setMsg(lg('err_notallowvoucher'));
			} else {
				$('voucherMsg_'+i).setContent('&nbsp;<img src="'+INC_URL+'img/cross.gif" align="absmiddle"> ' + lg('err_unknown'));
			}
		}
	}).send();
}

//======================================================================
//======================================================================

function myAjax(v) {
	var method = 'POST';
	var url = '';
	var param = '';
	var asyn = true;
	var data = '';
	var success = function() { };
	var myObject = null;
	for (var a in v) this[a] = v[a];
	
	this.send = function() {
		url = this.param ? this.url + '?' + this.param : this.url;
		this.myObject = new ajax();
		this.myObject.InitializeRequest(this.method, url, this.asyn);

		if (this.success) this.myObject.OnSuccess = this.success;
		if (this.uninitialize) this.myObject.OnUninitialize = this.uninitialize;
		if (this.loading) this.myObject.OnLoading = this.loading;
		if (this.loaded) this.myObject.OnLoaded = this.loaded;
		if (this.interactive) this.myObject.OnInteractive = this.interactive;
		if (this.failure) this.myObject.OnFailure = this.failure;
		
		if (this.data) this.myObject.Commit(this.data);
		else this.myObject.Commit('');
		
	}
}

//================================================================================================================================================
//================================================================================================================================================
//================================================================================================================================================

function ajax() {
   //---------------------
   // Private Declarations
   //---------------------
   var _request = null;
   var _this = null;
        
   //--------------------
   // Public Declarations
   //--------------------
   // this.GetResponseXML = function() {
      // return (_request) ? _request.responseXML : null;
   // }
        
   this.GetResponse = function() {	
			if (_request) {
				var ct = _request.getResponseHeader("content-type");
				// var c = ct.indexOf("xml") >= 0;
				data = instr('xml',ct) ? _request.responseXML : _request.responseText;
				return data;
			} else {
				return null;
			}
      // return (_request) ? _request.responseText : null;
   }
        
   this.GetRequestObject = function() {
      return _request;
   }
        
   this.InitializeRequest = function(Method, Uri, asyn) {
      _InitializeRequest();
      _this = this; 
      switch (arguments.length) {
         case 2:
						_request.open(Method, Uri);
            break;
                                
         case 3:
            _request.open(Method, Uri, arguments[2]);
            break;
      }
                
      if (arguments.length >= 4) _request.open(Method, Uri, arguments[2], arguments[3]);
      this.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
   }
        
   this.SetRequestHeader = function(Field, Value) {
      if (_request) _request.setRequestHeader(Field, Value);
   }
        
   this.Commit = function(Data) {
      if (_request) {
				_request.send(Data);
				_StateHandler();
			}
   }
        
   this.Close = function() {
      if (_request) _request.abort();
   }
        
   //---------------------------
   // Public Event Declarations.
   //---------------------------
   this.OnUninitialize = function(d) { };
   this.OnLoading = function(d) { };
   this.OnLoaded = function(d) { };
   this.OnInteractive = function(d) { };
   this.OnSuccess = function(d) { };
   this.OnFailure = function(d) { };
        
   //---------------------------
   // Private Event Declarations
   //---------------------------
   function _OnUninitialize(d) { _this.OnUninitialize(d); };
   function _OnLoading(d) { _this.OnLoading(d); };
   function _OnLoaded(d) { _this.OnLoaded(d); };
   function _OnInteractive(d) { _this.OnInteractive(d); };
   function _OnSuccess(d) { _this.OnSuccess(d); };
   function _OnFailure(d) { _this.OnFailure(d); };

   //------------------
   // Private Functions
   //------------------
   function _InitializeRequest() {
      _request = _GetRequest();
      _request.onreadystatechange = _StateHandler;
   }
        
   function _StateHandler() {
      switch (_request.readyState) {

         case 0:
            window.setTimeout("void(0)", 100);
            _OnUninitialize();
            break;
                                
         case 1:
            window.setTimeout("void(0)", 100);
            _OnLoading();
            break;
                                
         case 2:
            window.setTimeout("void(0)", 100);
            _OnLoaded();
            break;
                        
         case 3:
            window.setTimeout("void(0)", 100);
            _OnInteractive();
            break;
                                
         case 4:
            if (_request.status == 200)
               _OnSuccess(_this.GetResponse());
            else
               _OnFailure(_this.GetResponse());
                                        
            return;
            break;
      }
   }
        
   function _GetRequest() {
      var obj;
                
      try {
         obj = new XMLHttpRequest();
      } catch (error) {
         try {
            obj = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (error) {
            return null;
         }
      }
                
      return obj;
   }
}

//======================================================================
