﻿//--------------------------------------------------------------------
function _isInteger(val) {
	var digits='1234567890';
	for (var i=0; i < val.length; i++) {
		if (digits.indexOf(val.charAt(i))==-1) { return false; }
		}
	return true;
	}
function _getInt(str,i,minlength,maxlength) {
	for (var x=maxlength; x>=minlength; x--) {
		var token=str.substring(i,i+x);
		if (token.length < minlength) { return null; }
		if (_isInteger(token)) { return token; }
		}
	return null;
	} 
//--------------------------------------------------------------------
// DateFromFormat( date_string , format_string )
// This function takes a date string and a format string. It matches
// If the date string matches the format string, it returns the 
// getTime() of the date. If it does not match, it returns 0.
//--------------------------------------------------------------------
function DateFromFormat(val,format) {
	val=val+'';
	format=format+'';
	var i_val=0;
	var i_format=0;
	var c='';
	var token='';
	var token2='';
	var x,y;
	var now=new Date();
	var year=now.getYear();
	var month=now.getMonth()+1;
	var date=1;
	var hh=now.getHours();
	var mm=now.getMinutes();
	var ss=now.getSeconds();
	var ampm='';
	
	while (i_format < format.length) {
		// Get next token from format string
		c=format.charAt(i_format);
		token='';
		while ((format.charAt(i_format)==c) && (i_format < format.length)) {
			token += format.charAt(i_format++);
			}
		// Extract contents of value based on format token
		if (token=='yyyy' || token=='yy' || token=='y') {
			if (token=='yyyy') { x=4;y=4; }
			if (token=='yy')   { x=2;y=2; }
			if (token=='y')    { x=2;y=4; }
			year=_getInt(val,i_val,x,y);
			if (year==null) { return 0; }
			i_val += year.length;
			if (year.length==2) {
				if (year > 70) { year=1900+(year-0); }
				else { year=2000+(year-0); }
				}
			}
		else if (token=='MMM'||token=='NNN'){
			month=0;
			for (var i=0; i<MONTH_N.length; i++) {
				var month_name=MONTH_N[i];
				if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) {
					if (token=='MMM'||(token=='NNN'&&i>11)) {
						month=i+1;
						if (month>12) { month -= 12; }
						i_val += month_name.length;
						break;
						}
					}
				}
			if ((month < 1)||(month>12)){return 0;}
			}
		else if (token=='EE'||token=='E'){
			for (var i=0; i<DAY_N.length; i++) {
				var day_name=DAY_N[i];
				if (val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()) {
					i_val += day_name.length;
					break;
					}
				}
			}
		else if (token=='MM'||token=='M') {
			month=_getInt(val,i_val,token.length,2);
			if(month==null||(month<1)||(month>12)){return 0;}
			i_val+=month.length;}
		else if (token=='dd'||token=='d') {
			date=_getInt(val,i_val,token.length,2);
			if(date==null||(date<1)||(date>31)){return 0;}
			i_val+=date.length;}
		else if (token=='hh'||token=='h') {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<1)||(hh>12)){return 0;}
			i_val+=hh.length;}
		else if (token=='HH'||token=='H') {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<0)||(hh>23)){return 0;}
			i_val+=hh.length;}
		else if (token=='KK'||token=='K') {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<0)||(hh>11)){return 0;}
			i_val+=hh.length;}
		else if (token=='kk'||token=='k') {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<1)||(hh>24)){return 0;}
			i_val+=hh.length;hh--;}
		else if (token=='mm'||token=='m') {
			mm=_getInt(val,i_val,token.length,2);
			if(mm==null||(mm<0)||(mm>59)){return 0;}
			i_val+=mm.length;}
		else if (token=='ss'||token=='s') {
			ss=_getInt(val,i_val,token.length,2);
			if(ss==null||(ss<0)||(ss>59)){return 0;}
			i_val+=ss.length;}
		else if (token=='a') {
			if (val.substring(i_val,i_val+2).toLowerCase()=='am') {ampm='AM';}
			else if (val.substring(i_val,i_val+2).toLowerCase()=='pm') {ampm='PM';}
			else {return 0;}
			i_val+=2;}
		else {
			if (val.substring(i_val,i_val+token.length)!=token) {return 0;}
			else {i_val+=token.length;}
			}
		}
	// If there are any trailing characters left in the value, it doesn't match
	if (i_val != val.length) { return 0; }
	// Is date valid for month?
	if (month==2) {
		// Check for leap year
		if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year
			if (date > 29){ return 0; }
			}
		else { if (date > 28) { return 0; } }
		}
	if ((month==4)||(month==6)||(month==9)||(month==11)) {
		if (date > 30) { return 0; }
		}
	// Correct hours value
	if (hh<12 && ampm=='PM') { hh=hh-0+12; }
	else if (hh>11 && ampm=='AM') { hh-=12; }
	var newdate=new Date(year,month-1,date,hh,mm,ss);
	return newdate.getTime();
	}

//--------------------------------------------------------------------
function trimAll(sString) 
	{
		while (sString.substring(0,1) == ' ')
		{
		sString = sString.substring(1, sString.length);
		}
		while (sString.substring(sString.length-1, sString.length) == ' ')
		{
		sString = sString.substring(0,sString.length-1);
		}
		return sString;
	}
//--------------------------------------------------------------------
function ChkisDate(val,format) {
	var tb=document.getElementById(val);
	strTxt = trimAll(tb.value);
	if(strTxt=='')
		return false;
	var date=DateFromFormat(strTxt,format);
	if (date==0) 
		{
		window.alert('Ngày tháng không hợp lệ! Nhập theo định dạng: ' + format);  
		tb.select();
		tb.focus();
		return false; 
		}
	return true;
	}
//--------------------------------------------------------------------
function InputMask(strMask,IDE)
{   var chk = 0;
	var mSo = '$';
	var mChu = '#';
	var temp='';
	var tempJ='';
	var lenIDE;
	var lenMask;
	
	strText=document.getElementById(IDE).value;
	lenIDE=strText.length;
	lenMask=strMask.length;
	if (lenMask!=0){	
	if (lenIDE<lenMask){
		
		for (var i = lenIDE; i < lenMask; i++) {
			temp = strMask.substring(i, i + 1);
			tempJ='';
			if (mSo == temp) {
				chk = 1;
				break;
			}
			if (mChu == temp){
				chk = 2;
				break;
			}
			if ((mChu != temp)&&(mSo != temp)){
				chk = 3;
				for (var j = i; j < lenMask; j++) {
					if ((strMask.substring(j, j + 1) != mSo)&&(strMask.substring(j, j + 1) != mChu))
						{
							tempJ = tempJ + strMask.substring(j, j + 1);
						}
					else
					{
					if (strMask.substring(j, j + 1) == mSo)
						{
							if((event.keyCode < 48)||(event.keyCode > 57)) //khong la so
							{ event.keyCode=0; }
						}
						
					if (strMask.substring(j, j + 1) == mChu)
						{
							if(!(((event.keyCode > 64)&&(event.keyCode < 91))||((event.keyCode > 96)&&(event.keyCode < 123)))) // la chu
							{ event.keyCode=0; }
						}	
					
					break;}
				}
				break;
			}
		} // end for	
	
	if (chk==1){
		if((event.keyCode < 48)||(event.keyCode > 57)) //khong la so
			{ event.keyCode=0; }
	}
	
	if (chk==2){
		if(!(((event.keyCode > 64)&&(event.keyCode < 91))||((event.keyCode > 96)&&(event.keyCode < 123)))) // la chu
			{ event.keyCode=0; }
	}
	
	if (chk==3){
	    	document.getElementById(IDE).value = strText + tempJ;
		}
	
	} 
	else
	{
		event.keyCode=0;
	}	
	}
}
//--------------------------------------------------------------------

function InputInt()
{
 if((event.keyCode < 48)||(event.keyCode > 57))
 {
  event.keyCode=0;
 }
}

//--------------------------------------------------------------------

function InputFlo()
	{ 
		if(((event.keyCode < 48)||(event.keyCode > 57)) && (event.keyCode!=44) && (event.keyCode!=45) && (event.keyCode!=46))
		{
			event.keyCode=0;
		}
	}
//--------------------------------------------------------------------

function InputNull(id)
{
var obj=FindObjectID(id);
 if(obj.value=="")
 {
  alert("Please enter a value");
  obj.focus();
 }
}
//--------------------------------------------------------------------
function DeleteCart()
{
if (confirm("Are you sure delete selected row?")==true)
{
    grid.PerformCallback('Delete');
    CallbackPanelAddToCart.PerformCallback('ReLoad');
    return true;
}
else
return false;
}
function UpdateCart()
{
if (confirm("Are you sure update now?")==true)
{
    CallbackPanelUpdateCart.PerformCallback();
    CallbackPanelAddToCart.PerformCallback('ReLoad');
    return true;
}
else
return false;
}
function AlertWindow_Save()
{
if (confirm("Bạn có chắc chắn muốn lưu không?")==true)
return true;
else
return false;
}
function AlertWindow_Reset()
{
if (confirm("Bạn có chắc chắn thiết lập mặc định không?")==true)
return true;
else
return false;
}
function AlertWindow_NotLog()
{
    alert("Please login!");
}
function submitForm(submitButtonId)
{
    if (event.keyCode == 13)
    {
    event.cancelBubble = true;
    event.returnValue = false;
    FindObjectID(submitButtonId).click();
    }
}

//--------------------------------------------------------------------
function MM_OpenWindow(theURL) 
{ 
  var w = 720;
  var h = 600;
  var l = (window.screen.availWidth - w)/2;
  var t = (window.screen.availHeight - h)/2;
  var sOption="toolbar=no,location=no,directories=no,menubar=no,scrollbars=yes,width=" + w + ",height=" + h + ",left=" + l + ",top=" + t; 
  window.open(theURL,"",sOption);
}
//--------------------------------------------------------------------
function log_out()
{
	ht = document.getElementsByTagName("body");
	ht[0].style.filter = "progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)";
if (confirm("Bạn có chắc chắn muốn thoát khỏi hệ thống?")==true)
return true;
else{
ht[0].style.filter = "";
return false;}
}
//--------------------------------------------------------------------
function FindObjectID(idName)
{
	return document.getElementById(idName);
}
//--------------------------------------------------------------------
function setfocus()
{
	var frm = document.Form1;
    if (!frm) {
    frm = document.aspnetForm;}
    
	var len=frm.elements.length;
	for(i=0;i<len;i++)
	{
	 if(frm.elements[i].type=='text')
		{				
			frm.elements[i].focus();
			break;
		}
	}		
}
//--------------------------------------------------------------------	
var lastColor;
function changeBackColor(row, highlight)
{
	if (highlight)
	{
		row.style.cursor = "pointer";
		lastColor = row.style.backgroundColor;
		row.style.backgroundColor = '#67a7e3';
	}
	else
		row.style.backgroundColor = lastColor;
}
function ChangeBorderColor(which, highlight)
{
	if (highlight)
	{
		which.style.cursor = "pointer";
		lastColor = which.style.borderColor;
		which.style.borderColor = '#EFBA00';
	}
	else
		which.style.borderColor = lastColor;
}
//--------------------------------------------------------------------
var PROGRESS_INTERVAL = 500;
var PROGRESS_COLOR = '#007D08';

var _divFrame;
var _divUploadMessage;
var _divUploadProgress;
var _ifrPhoto;

var _loopCounter = 1;
var _maxLoop = 10;
var _photoUploadProgressTimer;

function initPhotoUpload()
{
    _divFrame = document.getElementById('divFrame');
    _divUploadMessage = document.getElementById('divUploadMessage');
    _divUploadProgress = document.getElementById('divUploadProgress');
    _ifrPhoto = document.getElementById('ifrPhoto');

    var btnUpload = _ifrPhoto.contentWindow.document.getElementById('btnUpload');

    btnUpload.onclick = function(event)
    {
        var filPhoto = _ifrPhoto.contentWindow.document.getElementById('filPhoto');

        //Baisic validation for Photo
        _divUploadMessage.style.display = 'none';

        if (filPhoto.value.length == 0)
        {
            _divUploadMessage.innerHTML = '<span style=\"color:#ff0000\">Vui lòng chọn tập tin cần tải.</span>';
            _divUploadMessage.style.display = '';
            filPhoto.focus();
            return;
        }

        var regExp = /^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))(.jpg|.JPG|.gif|.GIF|.png|.PNG|.bmp|.BMP)$/;

        if (!regExp.test(filPhoto.value)) //Somehow the expression does not work in Opera
        {
            _divUploadMessage.innerHTML = '<span style=\"color:#ff0000\"> Tập tin upload chỉ có định dạng: jpg, gif, png và bmp.</span>';
            _divUploadMessage.style.display = '';
            filPhoto.focus();
            return;
        }

        beginPhotoUploadProgress();
        _ifrPhoto.contentWindow.document.getElementById('photoUpload').submit();
        _divFrame.style.display = 'none';
    }
}

function beginPhotoUploadProgress()
{
    _divUploadProgress.style.display = '';
    clearPhotoUploadProgress();
    _photoUploadProgressTimer = setTimeout(updatePhotoUploadProgress, PROGRESS_INTERVAL);
}

function clearPhotoUploadProgress()
{
    for (var i = 1; i <= _maxLoop; i++)
    {
        document.getElementById('tdProgress' + i).style.backgroundColor = 'transparent';
    }

    document.getElementById('tdProgress1').style.backgroundColor = PROGRESS_COLOR;
    _loopCounter = 1;
}

function updatePhotoUploadProgress()
{
    _loopCounter += 1;

    if (_loopCounter <= _maxLoop)
    {
        document.getElementById('tdProgress' + _loopCounter).style.backgroundColor = PROGRESS_COLOR;
    }
    else 
    {
        clearPhotoUploadProgress();
    }

    if (_photoUploadProgressTimer)
    {
        clearTimeout(_photoUploadProgressTimer);
    }

    _photoUploadProgressTimer = setTimeout(updatePhotoUploadProgress, PROGRESS_INTERVAL);
}

function photoUploadComplete(message, isError)
{
    clearPhotoUploadProgress();

    if (_photoUploadProgressTimer)
    {
        clearTimeout(_photoUploadProgressTimer);
    }

    _divUploadProgress.style.display = 'none';
    _divUploadMessage.style.display = 'none';
    _divFrame.style.display = '';

    if (message.length)
    {
        var color = (isError) ? '#ff0000' : '#008000';

        _divUploadMessage.innerHTML = '<span style=\"color:' + color + '\;font-weight:bold">' + message + '</span>';
        _divUploadMessage.style.display = '';

        if (isError)
        {
            _ifrPhoto.contentWindow.document.getElementById('filPhoto').focus();
        }
    }
}

function AddItemToCart(sCode)
{
    CallbackPanelAddToCart.PerformCallback(sCode);
    alert("Added");
}

function ClearForm()
{
    document.aspnetForm.reset();    		
}
function gridSelectionChanged() {
	var frm = document.Form1;
    if (!frm) {
    frm = document.aspnetForm;}
    
    var selCount = grid.GetSelectedRowCount() - grid.selectedWithoutPageRowCount;
    if (selCount>0) {
        for(i=0;i< frm.length;i++)								
		        {														
	      	        k=frm.elements[i];	
        	        if((k.type=='button' || k.type=='submit')   && k.name.indexOf('btnDel') != -1)
           	         { 
		                k.disabled=false;
           	         }
		        }
       }
    else {
        for(i=0;i< frm.length;i++)								
		        {														
	      	        k=frm.elements[i];	
        	        if((k.type=='button' || k.type=='submit')   && k.name.indexOf('btnDel') != -1)
           	         { 
		                k.disabled=true;
           	         }
		        }         
         }
}

//Format number
 function numberFormat(IDE) {
    sText=document.getElementById(IDE).value;
    document.getElementById(IDE).value=FormatNumber(sText);
	}
function FormatNumber(str){
	
	var strTemp = GetNumber(str);
		
	if(strTemp.length <= 3)
		return strTemp;

	strResult = "";
	for(var i =0; i< strTemp.length; i++)
		strTemp = strTemp.replace(",", "");
	
	for(var i = strTemp.length; i>=0; i--)
	{
		if(strResult.length >0 && (strTemp.length - i -1) % 3 == 0)
			strResult = "," + strResult;
					
		strResult = strTemp.substring(i, i + 1) + strResult;
	}	
	return strResult;
	
	
}
function IsNumber(str)
{
	for(var i = 0; i < str.length; i++)
	{	
		var temp = str.substring(i, i + 1);
		
		if(!(temp == "," || (temp >= 0 && temp <=9)))
			return false;
	}
	return true;
}

function GetNumber(str)
{
	for(var i = 0; i < str.length; i++)
	{	
		var temp = str.substring(i, i + 1);		
		if(!(temp == "," || (temp >= 0 && temp <=9)))
		{
			alert("Không phải là số!");
			return str.substring(0, i);
		}
		
	}
	return str;
}
//Hàm đếm số ký tự còn lại trả về format cho span display
function DeCount(intMax, strText, strSpanName, strIDCtlText, strMess)
{
	var intResult = intMax - strText.length;
	if(intResult < 0)
	{	alert("Bạn đã nhập vượt quá giới hạn cho phép!");
		document.getElementById(strIDCtlText).value = strText.substring(0, intMax);
		document.getElementById(strIDCtlText).focus();
		intResult = 0;
	}	
	document.getElementById(strSpanName).innerHTML = strMess + ":" + intResult;	
}
