﻿//============================================================================================================
// 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';}
}

/* 
 * Cross-browser event handling, by Scott Andrew
 */
function addEventScott(element, eventType, lamdaFunction, useCapture) {
    if (element.addEventListener) {
        element.addEventListener(eventType, lamdaFunction, useCapture);
        return(true);
    } else if (element.attachEvent) {
        var r = element.attachEvent('on' + eventType, lamdaFunction);
        return(r);
    } else {
        return(false);
    }
}

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("");  
}

//============================================================================================================
// Form Validation
//============================================================================================================
var W3CDOM = (document.getElementsByTagName && document.createElement);
function validate_ex(theForm, _ErrMsg, arrNotRequired) {
	validForm = true;
	firstError = null;
	errorstring = '';
	var firstAlert = null;
	var x = document.forms[theForm].elements;
	var arr = ','+arrNotRequired.toString()+ ',';
	for (var i=0;i<x.length;i++) {
		if (arr.indexOf(','+x[i].name+',')==-1) {
			str = "".concat(x[i].type);
			//alert(x[i].type);
			if ((str.toString() == "undefined") || (str.toString() == "button") || (str.toString() == "hidden"))
				continue;
			//if (!x[i].value)
//			{
//				var str="";
//				str = "".concat(x[i].type);
//				if ((str.toString() != "undefined") && (str.toString() != "button") && (str.toString() != "hidden"))
//				{
//					writeError(x[i], _ErrMsg);
//					if (firstError ==null) firstError = x[i];
//				}
//			}

			if (x[i].name == 'txt_email')
			{	
				if (x[i].value == '') {
					writeError(x['txt_email'], _ErrMsg);
					if(!firstAlert) firstAlert = LABEL_NoEmail;
				}else{
					var strEmail = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
					if(!strEmail.test(x['txt_email'].value)){
						writeError(x['txt_email'], _ErrMsg);
						if(!firstAlert) firstAlert = LABEL_InvalidEmail;
					}
				}
			}
			if(x[i].name == 'txt_oldpass')
			{
				if(!(x['txt_oldpass'].value)) {
					writeError(x['txt_oldpass'], _ErrMsg);
					if(!firstAlert) firstAlert = LABEL_NoPassword;
				}
			}
			if(x[i].name == 'txt_pass')
			{
				if(!(x['txt_pass'].value)) {
					writeError(x['txt_pass'], _ErrMsg);
					if(!firstAlert) firstAlert = LABEL_NoPassword;
				}
			}
			if (x[i].name == 'txt_cfr_pass')
			{
				if(x['txt_cfr_pass'].value != x['txt_pass'].value || x['txt_cfr_pass'].value == ''){
					writeError(x['txt_cfr_pass'], _ErrMsg);
					if(!firstAlert) firstAlert = LABEL_InvalidPasswordConfirm;
				}
			}
			
			if (x[i].name == 'txt_name')
			{			
				if(!(x['txt_name'].value)){
					writeError(x['txt_name'], _ErrMsg);
					if(!firstAlert) firstAlert = LABEL_NoCustomerName;
				}
			}			
			if (x[i].name == 'txt_phone')
			{			
				if(!(x['txt_phone'].value)){
					writeError(x['txt_phone'], _ErrMsg);
					if(!firstAlert) firstAlert = LABEL_NoCustomerPhone;
				}
			}
			if (x[i].name == 'txt_title')
			{			
				if(!(x['txt_title'].value)){
					writeError(x['txt_title'], _ErrMsg);
					if(!firstAlert) firstAlert = LABEL_NoMessageTitle;
				}
			}
			if (x[i].name == 'txt_message')
			{			
				if(!(x['txt_message'].value)){
					writeError(x['txt_message'], _ErrMsg);
					if(!firstAlert) firstAlert = LABEL_NoMessageContent;
				}
			}
			if (x[i].name == "txt_seccode")
			{			
				if(!(x['txt_seccode'].value)){
					writeError(x['txt_seccode'], _ErrMsg);
					if(!firstAlert) firstAlert = LABEL_NoSecurityCode;
				}
			}
		}
	}
	if (!W3CDOM)
		alert(errorstring);
	if (firstError)
		firstError.focus();
	if (firstAlert)
		alert(firstAlert);	
	if (validForm)
		return true;
		
	return false; // I return false anyway to prevent actual form submission. Don't do this at home!
}
function validate(theForm, _ErrMsg, arrNotRequired) {
	try {
		validForm = true;
		firstError = null;
		errorstring = '';
		var _frm = document.getElementById(theForm);
		if(_frm==null){return false;}
		var x = _frm.elements;
		var arr = ','+arrNotRequired.toString()+ ',';
		for (var i=0;i<x.length;i++) {
			if (arr.indexOf(','+x[i].name+',')==-1) {
				if (!x[i].value)
				{
					var str="";
					str = "".concat(x[i].type);
					if ((str.toString() != "undefined") || (str.toString() != "button") || (str.toString() != "hidden"))
					{
						writeError(x[i], _ErrMsg);
						if (firstError ==null)
						firstError = x[i];				
					}
				}
				if (x[i].name == 'txt_email')
				{			
					var strEmail = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
					if(!strEmail.test(x['txt_email'].value))
						writeError(x['txt_email'], _ErrMsg);
				}
			}
		}
		
		if (!W3CDOM)
			alert(errorstring);
		if (firstError)
			firstError.focus();
		if (validForm)
			return true;
			
		return false; // I return false anyway to prevent actual form submission. Don't do this at home!
		
	}catch(ex){return(false);}
}
function revalidate() {
		var noerror = true;
		if (!this.value)
		{
			var str="";
			str = "".concat(this.type);
			if ((str.toString() != "undefined") || (str.toString() != "button") || (str.toString() != "hidden"))
			{
				noerror = false;			
			}
		}
		if (this.name == 'txtEmail')
		{			
			var strEmail = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
			if(!strEmail.test(this.value))
				noerror = false
		}
		if(noerror){
			this.className = this.className.substring(0,this.className.lastIndexOf(' '));
			//this.parentNode.removeChild(this.hasError);
			this.hasError = null;
			this.onchange = null;
		}			
}
function writeError(obj,message) {
	validForm = false;
	if (obj.hasError) return;
	if (W3CDOM) {
		if(obj.type == "textarea") {
			obj.className = 'error';
		} else {
			obj.className += ' error';
		}
		obj.onchange = revalidate;
		var sp = document.createElement('span');
		sp.className = 'error';
		sp.appendChild(document.createTextNode(message));
		//obj.parentNode.appendChild(sp);
		obj.hasError = sp;
	}
	else {
		errorstring += obj.name + ': ' + message + '\n';
		obj.hasError = true;
	}
	if (!firstError)
		firstError = obj;
}

function removeError() {
	this.className = this.className.substring(0,this.className.lastIndexOf(' '));
	//this.parentNode.removeChild(this.hasError);
	this.hasError = null;
	this.onchange = null;
}
function removeNodeError(_nodeId){
	var obj = document.getElementById(_nodeId);
	try{
		obj.className = obj.className.substring(0,obj.className.lastIndexOf(' '));
		//obj.parentNode.removeChild(obj.hasError);
		obj.hasError = null;
		obj.onchange = null;
	}
	catch(ex){
		
	}
}
//============================================================================================================
// END Form Validation
//============================================================================================================

//============================================================================================================
// Ajax functions
//============================================================================================================
function send_request(_frm, _type){
	try{
		var getStr = "type=" + _type;
	
		$("#indicator").css("display", 'block');
		var frm = document.getElementById(_frm);
		if(!frm){return;}
		//alert(inputs.length);
		getStr += get_value(_frm);
		getStr += "&rd=" + Math.random(); 
		var actionURL = baseURL + "ajax/actions.aspx";		
		
		$.ajax({
			type: "POST",
			url: actionURL,
			data: getStr,
			success: function(msg){
				$("#indicator").css("display", 'none');
				if(msg.indexOf('err=')!=0){
					window.location = msg;
				}else{
					switch(msg.replace(/err=/, "")){
						case "code":
							alert(LABEL_InvalidSecCode);
							break;
						case "noname":
							alert(LABEL_NoCustomerName);
							break;
						case "noemail":
							alert(LABEL_NoEmail);
							break;
						case "nophone":
							alert(LABEL_NoCustomerPhone);
							break;
						case "notitle":
							alert(LABEL_NoMessageTitle);
							break;
						case "nocontent":
							alert(LABEL_NoMessageContent);
							break;
						case "invalidemail":
							alert(LABEL_InvalidEmail);
							break;
						case "invalidcode":
							if(rewrite) {
								$("#sec_img").attr("src", baseURL + "code/" + Math.random());
							}else{
								$("#sec_img").attr("src", baseURL + "code.aspx?rd=" + Math.random());
							}
							alert(LABEL_InvalidSecCode);
							break;
						case "nopassword":
							alert(LABEL_NoPassword);
							break;
						case "mailexist":
							alert(LABEL_MailExisted);
							break;
						case "mailnotexist":
							alert(LABEL_MailNotExisted);
							break;
						case "wrongpassword":
							alert(LABEL_WrongPassword);
							break;
						case "usernotfound":
							alert(LABEL_UserNotFound);
							break;
						case "confirmfailure":
							alert(LABEL_InvalidPasswordConfirm);
							break;
						default:
							alert(LABEL_UnspecificError);
							break;
					}
				}
			}
		});

		
		return;

	}catch(ex){}
}
function change_image(_img){
	try{
		var getStr = "type=changeimage";
		$("#indicator").css("display", 'block');		
		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").css("display", 'none');
			}
		});
		return;
	}catch(ex){}
}
function load_newsletter(_oid, _nid){
	try{
		var obj = document.getElementById(_oid);
		if(!obj) return false;
		
		var getStr = "type=loadnewsletter";
		$("#indicator").css("display", 'block');		
		getStr += "&nid=" + window.encodeURIComponent(_nid);
		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){
					obj.innerHTML = msg;
				}
				$("#indicator").css("display", 'none');
			}
		});
		return;
	}catch(ex){}
}
function load_people(_oid, _cid){
	try{
		var obj = document.getElementById(_oid);
		if(!obj) return false;
		
		var getStr = "type=loadpeople";
		$("#indicator").css("display", 'block');		
		getStr += "&cat=" + window.encodeURIComponent(_cid);
		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){
					obj.innerHTML = msg;
				}
				$("#indicator").css("display", 'none');
			}
		});
		return;
	}catch(ex){}
}
function do_search(_oid,_cat,_keyword,_page){
	try{
		var obj = document.getElementById(_oid);
		if(!obj) return false;
		
		var getStr = "type=search";
		$("#indicator").css("display", 'block');		
		getStr += "&cat=" + window.encodeURIComponent(_cat) + "&keyword=" + window.encodeURIComponent(_keyword) + "&page=" + window.encodeURIComponent(_page);
		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){
					obj.innerHTML = msg;
				}
				$("#indicator").css("display", 'none');
			}
		});
		return;
	}catch(ex){}
}
function load_press(_oid,_cat,_page){
	try{
		var obj = document.getElementById(_oid);
		if(!obj) return false;
		
		var getStr = "type=press";
		$("#indicator").css("display", 'block');		
		getStr += "&cat=" + window.encodeURIComponent(_cat) + "&page=" + window.encodeURIComponent(_page);
		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){
					obj.innerHTML = msg;
				}
				$("#indicator").css("display", 'none');
			}
		});
		return;
	}catch(ex){}
}
//============================================================================================================
// END OF Ajax functions
//============================================================================================================
//============================================================================================================
// 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());
	});
}
function process_enter(_frm, _btn){
	try{
		$('#'+_frm+' :input').each(function(i){
			$(this).keydown(function(event){
				if (event.keyCode == 13){
					if(_btn==''||!_btn)
						$('#'+_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){
	try{
		var title=_title;var 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){}
}
//============================================================================================================
// END OF Other functions
//============================================================================================================
function login(_oid,_err){
	try{
		var getStr = "type=login";
		getStr += get_value(_oid);
		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 (msg.indexOf('OK')==0) {
						window.location.replace(msg.substring(3));
					}
					else {
						$('div#' + _err).css('display','block');
						$('div#' + _err).html('<ol><li><label class="error" style="display:inline;">' + msg + '</label></li></ol>');
					}
				}
				else {
					$('div#' + _err).css('display','block');
					$('div#' + _err).html('<ol><li><label class="error" style="display:inline;">Có lỗi khi đăng nhập, bạn vui lòng thử lại sau.</label></li></ol>');
				}
			}
		});
		return;
	}catch(ex){}
}
function logout(){
	try{
		var getStr = "type=logout&rd=" + Math.random(); 
		var actionURL = baseURL + "ajax/actions.aspx";		
		
		$.ajax({
			type: "POST",
			url: actionURL,
			data: getStr,
			success: function(msg){
				if (msg.indexOf('err=')!=0) {
					window.location.replace(baseURL);						
				}
			}
		});
		return;
	}catch(ex){}
}
function changeLang(_lang){
	try{
		var getStr = "type=language&lang=" + _lang + "&rd=" + Math.random(); 
		var actionURL = baseURL + "ajax/actions.aspx";		
		
		$.ajax({
			type: "POST",
			url: actionURL,
			data: getStr,
			success: function(msg){
				if (msg.indexOf('err=')!=0) {
					//window.location.reload();
					window.location = baseURL;
				}
			}
		});
		return;
	}catch(ex){}
}
