﻿//============================================================================================================
// Common functions
//============================================================================================================
function getElementsByName (tag, name) {    
     var elem = document.getElementsByTagName(tag);
     var arr = new Array();
     for(i = 0,iarr = 0; i < elem.length; i++) {
          att = elem[i].getAttribute("name");
          if(att == name) {
               arr[iarr] = elem[i];
               iarr++;
          }
     }
     return arr;
}
//function trimtext(_text) { return _text.replace(/^\s+|\s+$/, '').substr(0, _text.replace(/^\s+|\s+$/, '').length); };
function trimtext(_text) {
	var tmp=_text;
	while((tmp.substr(0,1)==' ')&&(tmp.length>0)){tmp = tmp.substr(1, tmp.length);}
	while((tmp.substr(tmp.length-1,1)==' ')&&(tmp.length>0)){tmp = tmp.substr(0,tmp.length-1);}
	return(tmp);
}
function isNumber(ss){
	var passw = ss;
	var ValidChars = '0123456789.';
	var IsNumber=true;
	var Char='';
	
	for (i = 0; passw.length > i && IsNumber == true; i++) 
	{ 
		Char = passw.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) { IsNumber = false; }
	}
	try{
		var ii = parseInt(ss, 10);
		if(ii=='NaN'){return(false)};
	}catch(ex){
		return(false);
	}
	if (IsNumber){ return(true);} else {return(false);}
}
function isPositiveNumber(ss) {
	try {if (isNumber(ss)) {return((ss>0)?true:false);} else {return(false);}}catch(ex){return(false);}
}
function checkNumberValue(e) {
  	var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;
    
    //if (target.value == target.defaultText) { target.value = ''; }
	if (isNumber(target.value)==false){target.value='0';}
}
function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}
function get_value(_frm){
	var getStr = "";
	var frm = document.getElementById(_frm);
	var inputs = frm.getElementsByTagName("input");
	if(!frm){return;}
	
	for (i=0; i<inputs.length; i++) {
		if(inputs[i].name!='' && inputs[i].name!='undefined') {
			switch(inputs[i].type){
				case "text":
					getStr += "&" + inputs[i].name + "=" + window.encodeURIComponent(inputs[i].value);
					break;
				case "password": 
					getStr += "&" + inputs[i].name + "=" + window.encodeURIComponent(inputs[i].value);
					break;
				case "hidden":
					getStr += "&" + inputs[i].name + "=" + window.encodeURIComponent(inputs[i].value);
					break;
				case "checkbox":
					if(inputs[i].checked) {
						getStr += "&" + inputs[i].name + "=" + window.encodeURIComponent(inputs[i].value);
					}else{
						getStr += ""; //"&" + inputs[i].name + "="
					}
					break;
				case "radio":
					if(inputs[i].checked) {
						getStr += "&" + inputs[i].name + "=" + window.encodeURIComponent(inputs[i].value);
					}else{
						getStr += "";// + inputs[i].name + "="
					}
					break;
				default:
					break;
			}
		}
	}
	inputs = frm.getElementsByTagName("textarea");
	if(inputs!=null&&!inputs.length) {
		getStr += "&" + inputs.name + "=" + window.encodeURIComponent(inputs.value);
	}else{
		for (i=0; i<inputs.length; i++) {
			getStr += "&" + inputs[i].name + "=" + window.encodeURIComponent(inputs[i].value);
		}
	}
	inputs = frm.getElementsByTagName("select");
	if(inputs!=null&&!inputs.length) {
		getStr += "&" + inputs.name + "=" + window.encodeURIComponent(inputs.value);
	}else{
		for (i=0; i<inputs.length; i++) {
			getStr += "&" + inputs[i].name + "=" + window.encodeURIComponent(inputs[i].value);
		}
	}
	return getStr;
}
function sendmail(_title, _body){
	window.location = "mailto:your-friend@email.com?subject=" + encodeURIComponent(_title) + '&body=' + window.encodeURIComponent(_body);
}
function ChuyenTVKhongDau(strVietNamese)  
{  
	if(!strVietNamese) return '';
	//processing Vietnamese
	var FindText="áàảãạâấầẩẫậăắằẳẵặđéèẻẽẹêếềểễệíìỉĩịóòỏõọôốồổỗộơớờởỡợúùủũụưứừửữựýỳỷỹỵÁÀẢÃẠÂẤẦẨẪẬĂẮẰẲẴẶĐÉÈẺẼẸÊẾỀỂỄỆÍÌỈĨỊÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢÚÙỦŨỤƯỨỪỬỮỰÝỲỶỸỴqwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM";  
	var ReplText="aaaaaaaaaaaaaaaaadeeeeeeeeeeeiiiiiooooooooooooooooouuuuuuuuuuuyyyyyAAAAAAAAAAAAAAAAADEEEEEEEEEEEIIIIIOOOOOOOOOOOOOOOOOUUUUUUUUUUUYYYYYqwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM";  
	var index=-1;  
	var tmp = strVietNamese.split("");
	var length = tmp.length;
	for(var i=0;i<length;i++){
		if(i>=tmp.length) break;
		index=FindText.indexOf(tmp[i]);
		if(index>=0){
			tmp[i]=ReplText.substr(index,1);}
		else{
			tmp[i]="_";}
	}
    return tmp.join("");  
}
function isDate( s )
{
	var sDay, sMonth, sYear, nMonth, nDay, nYear, nSep1, nSep2;
	nSep1 = s.indexOf( "/" );	if ( nSep1 < 0 ) return false;
	nSep2 = s.lastIndexOf( "/" );	if ( nSep2 < 0 ) return false;
	if ( nSep1 == nSep2 ) return false;
	
	sDay = s.substring( 0, nSep1  );
	 sMonth = s.substring( nSep1 + 1, nSep2 );
	sYear = s.substring( nSep2+1 );
	if ( !sMonth.length || !sDay.length || !sYear.length ) return false;
	// isNaN(empty) is false
	if ( isNaN(sMonth) || isNaN(sDay) || isNaN(sYear) ) return false;
	nMonth = parseInt(sMonth,10); nDay = parseInt(sDay,10); nYear = parseInt(sYear,10);
	if ( nMonth<=0 || nDay<=0 || nYear<=0 || sYear.length != 4) return false;
	if ( nMonth > 12 ) return false;
	if ((nYear<1753)||(nYear>9999))	return false;
				
	
	if (nMonth==1 || nMonth==3 || nMonth==5 || nMonth==7 || nMonth==8 || nMonth==10 || nMonth==12 )
		if ( nDay > 31 ) return false; 
	if (nMonth==4 || nMonth==6 || nMonth==9 || nMonth==11 )
		if ( nDay > 30 ) return false; 
	if (nMonth==2) {
		if ( (nYear % 4 == 0) && (nYear % 100 != 0)) { // leap year
			if ( nDay > 29 ) return false;
		} else if ( nDay > 28 ) return false;
	}
	return true;
} // isDate function
//============================================================================================================
// Other functions
//============================================================================================================
function init_search_text(_frm, _show, _hide){
	var show, hide, text;
	show = $('#'+_show);
	hide = $('#'+_hide);
	text = show.val();
	if(hide.val()!='')
		show.val(hide.val());
	
	$('#'+_frm).submit(function(){
		if(show.val()!=text)
			hide.val(show.val());
	});
	show.keyup(function(){
		hide.val(show.val());
	});
	show.blur(function(){
		hide.val(show.val());
		if(show.val()=='') show.val(text);
	});
	show.focus(function(){
		$(this).val(hide.val());
	});
	return '';
}
function process_enter(_frm, _btn){
	try{
		$('#'+_frm+' :input').each(function(i){
			$(this).keydown(function(event){
				if (event.keyCode == 13){
					if($("#"+_btn).length==0){
						if(!$('#'+_frm).validate){
							$('#'+_frm).submit();
						}else{
							if($('#'+_frm).valid())$('#'+_frm).submit();;
						}
					}else{
						$("#"+_btn).click();
					}
				}
			});
		});
	}catch(ex){}
}
function print_page(_type,_cid,_id,_page,_search){
	try{
		if(!!rewrite) {
			$('#print').after("<form action='"+baseURL+"print/"+(!_type?"print":_type)+"/"+(!_cid?"0":_cid)+"/"+(!_id?"0":_id)+"/"+(!_page?"1":_page)+"/"+(!_search?"print":ChuyenTVKhongDau(_search))+".html' id='print_form' method='post'><input type='hidden' name='keyword' value='"+_search+"' /></form>");
		}else{
			$('#print').after("<form action='"+baseURL+"print.aspx' id='print_form' method='post'></form>");
			$('#print_form').append("<input type='hidden' name='type' value='"+ _type+"' />");
			$('#print_form').append("<input type='hidden' name='cat' value='"+ _cid+"' />");
			$('#print_form').append("<input type='hidden' name='nid' value='"+ _id+"' />");
			$('#print_form').append("<input type='hidden' name='page' value='"+ _page+"' />");
			$('#print_form').append("<input type='hidden' name='keyword' value='"+_search+"' />");
		}
		$('#print_form').submit();
	}catch(ex){/*alert(ex.message)*/}	
}
function email_page(_title,_body){
	try{
		if(!_body){_body=window.location.toString();}
		if(!_title){_title=document.title;}
		window.location = "mailto:your-friend@email.com?subject=" + encodeURIComponent(_title) + '&body=' + window.encodeURIComponent(_body);
	}catch(ex){}
}
function bookmark_page(_title,_url){
	try{
		var title=_title;var url=_url;
		if(!url) url=window.location.toString();
		if(!title) title=document.title;
		if (window.sidebar) // firefox
			window.sidebar.addPanel(title, url, "");
		else if(window.opera && window.print){ // opera
			var elem = document.createElement('a');
			elem.setAttribute('href',url);
			elem.setAttribute('title',title);
			elem.setAttribute('rel','sidebar');
			elem.click();
		} else if(document.all)// ie
			window.external.AddFavorite(url, title);
	}catch(ex){}
}
function url_anchor(){
	return unescape(self.document.location.hash.substring(1));
}
function setHomepage(url){
  try{
	if (document.all){
		document.body.style.behavior='url(#default#homepage)';
		document.body.setHomePage(url);
	} else if (window.sidebar){
		if(window.netscape){
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
		}
		var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components. interfaces.nsIPrefBranch);
		prefs.setCharPref('browser.startup.homepage',url);
	}
  }catch(ex){bookmark_page(document.title,url)}
} 

//============================================================================================================
// END OF Other functions
//============================================================================================================
function send_form(_frm,_type,_indicator,_error){
	try{
		$("#"+_indicator).show();
		if($('#'+_frm).length==0){return false;}
		var getStr = "type="+_type+get_value(_frm)+"&rd=" + Math.random(); 
		var actionURL = baseURL+"ajax/actions.aspx";	
		
		$.ajax({
			type: "POST",
			url: actionURL,
			data: getStr,
			success: function(msg){
				if (msg.indexOf('err=')!=0) {
					if(msg.indexOf('ok=')==0){
						window.location=msg.substring(3);
					}else if(msg.indexOf('alert=')==0){
						alert(msg.substring(6));
					}else if(msg.indexOf('refresh=')==0){
						alert(msg.substring(8));
						self.document.location.hash=' ';
						window.location.reload(true);
					}else if(msg=='refresh'){
						self.document.location.hash=' ';
						window.location.reload(true);
					}
				}else{
					if($('div#'+_error).length>0){
						$('div#'+_error).css('display','block');
						$('div#'+_error+' ol').css('display','block');
						var arr=msg.substring(4).split('<br />');
						for(var i=0;i<arr.length;i++){
							if(!!arr[i]){
								$('div#'+_error+' ol').append('<li title="ajax" style="display:list-item;"><label for="ajax" generated="true" class="error" style="display:inline;">' + arr[i] + '</label></li>');
							}
						}
					}else{
						alert(msg);
					}
				}
				$("#"+_indicator).hide();
			}
		});
		return;
	}catch(ex){alert(ex.message);}
}
function send_ajax(_url,_qry,_oid,_indicator,_type){
	try{
		if(_indicator=='self'){//&&(_type=='reload'||_type=='home')
			$('#'+_oid).html('<img src="'+dataURL+'images/assets/indicator.gif" alt="loading..." />');
		}else{
			$('#'+_indicator).show();
		}
		$.ajax({
			type: "POST",
			url: _url,
			data: _qry,
			success: function(msg){
				if (msg.indexOf('err=')!=0) {
					switch(_type){
						case 'reload':window.location.reload(true);break;
						case 'home':window.location.replace(baseURL);break;
						case 'load':
							$('#'+_oid).html(msg);
							$('a[name=addcart]').click(function(event){
								event.preventDefault();
								add_cart($(this).attr('rel'));
							});
							break;
						case 'loadbook':
							$('#'+_oid).html(msg);
							$("#booklisting").jCarouselLite({
								btnNext: "#next",
								btnPrev: "#prev",
								visible:7,
								easing: "easein",
								auto: 3000,
								speed: 800
							});
							break;
						case 'redirect':window.location=msg;break;
						default://do nothing
					}
				}
				$('#'+_indicator).hide();
			}
		});
		return;
	}catch(ex){alert(ex.message);}
}
function change_image(_img){
	try{
		var getStr = "type=changeimage";
		$("#indicator").show();		
		getStr += "&rd=" + Math.random(); 
		var actionURL = baseURL + "ajax/actions.aspx";		
		
		$.ajax({
			type: "POST",
			url: actionURL,
			data: getStr,
			success: function(msg){
				if(msg.indexOf('err=')!=0){
					if(rewrite) {
						$('#'+_img).attr("src", baseURL + "code/" + Math.random());
					}else{
						$('#'+_img).attr("src", baseURL + "code.aspx?rd=" + Math.random());
					}
				}
				$("#indicator").hide()
			}
		});
		return;
	}catch(ex){}
}
function changeLang(_lang){
	try{
		var getStr = "type=language&lang=" + _lang + "&rd=" + Math.random(); 
		var actionURL = baseURL + "ajax/actions.aspx";		
		send_ajax(actionURL,getStr,'','','reload');
		return;
	}catch(ex){}
}
//============================================================================================================
// END OF Ajax functions
//============================================================================================================
jQuery().ready(function(){
	if(!!jQuery.validator){					
		jQuery.validator.addMethod( 
		  "datevn", 
		  function(value, element) { 
			return isDate(value);
		  }, 
		  "Invalid date value" 
		); 
	}
	$('a[rel=external]').attr('target','_blank');
	$('a[rel=homepage]').click(function(event){
		event.preventDefault();
		setHomepage($(this).attr('href'));
	});
	$('a[rel=language]').click(function(event){event.preventDefault();changeLang($(this).attr('lang'));});
	init_search_text('topsearch','txtsearch','txtkeyword'); 
	$('a[rel=email]').click(function(event){event.preventDefault();	email_page('','');});
	$('a[rel=bookmark]').click(function(event){event.preventDefault(); bookmark_page('');});
});
function loadnews(_oid,_cat,_page){
	try{
		var getStr = "type=loadnews&cat="+window.encodeURIComponent(_cat)+"&page="+window.encodeURIComponent(_page)+"&rd=" + Math.random(); 
		var actionURL = baseURL + "ajax/actions.aspx";		
		send_ajax(actionURL,getStr,_oid,'','load');
		return;
	}catch(ex){}
}
function do_search(_oid,_cat,_keyword,_page){
	try{
		var getStr = "type=search&cat="+window.encodeURIComponent(_cat)+"&keyword="+window.encodeURIComponent(_keyword)+"&page="+window.encodeURIComponent(_page)+"&rd=" + Math.random(); 
		var actionURL = baseURL + "ajax/actions.aspx";		
		send_ajax(actionURL,getStr,_oid,'','load');
		return;
	}catch(ex){alert(ex.message);}
}

				   