﻿var SuccessProcess = "00";
var SystemError = "01";
var SessionTimeOut = "02";
var CartEmpty = "03";
var LockCustomer = "04";
var SecurityErrorCode = "05";
var SoldOut = "06";
var bgColor = '#FFFFCA';
var temp = null;
var color = null;
var dtCh= "-";
var dtCh2 = ":";
var minYear=1900;
var maxYear=9999;
function getCookie(cookieName) {
    var arg = cookieName + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg) {
            return getCookieVal(j);
        }
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break; 
    }
    return null;
}

// Delete data from cookie
function deleteCookie(cookieName) {
    var expires = new Date ();
    if (getCookie(cookieName)) {
        document.cookie = cookieName + "=''" + "; expires=" + expires.toGMTString();
    }
}

function getCookieVal(offset) {
    var endstr = document.cookie.indexOf (";", offset);
    if (endstr == -1) {
        endstr = document.cookie.length;
    }
    return unescape(document.cookie.substring(offset, endstr));
}
function doChangeBGColor(object) {
	if (temp == null || temp != object) {
        if (temp != null) {
            temp.style.backgroundColor = color;
        }
        temp = object;

        color = object.style.backgroundColor;
    }
    object.style.backgroundColor = bgColor;
}

function echeck(str) {
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	if (str.indexOf(at)==-1){
		return false;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		return false;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false;
	}

	if (str.indexOf(at,(lat+1))!=-1){
		return false;
	}

	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false;
	}

	if (str.indexOf(dot,(lat+2))==-1){
		return false;
	}
	
	if (str.indexOf(" ")!=-1){
		return false;
	}

 	return true;			
}

function ValidateEmail(emailID){
	if (echeck(emailID.value)==false){
		emailID.value="";
		emailID.focus();
		return false;
	}
	return true
}

function onSelected(obj, value) {
	for (var i = 0; i < obj.length; i++) {
		if (obj[i].value == value) {
			obj[i].selected = true;
		} 
	}
}

function onDisplayError(errorMessage) {
	var td = document.getElementById("error");
	td.innerHTML = "<div class='error'>" + errorMessage + "</div>";
	window.scrollTo(0, 0);
}

function hideError() {
	var td = document.getElementById("error");
	td.innerHTML = "";
}

function onDisplaySuccessful(message) {
	var td = document.getElementById("error");
	td.innerHTML = "<div class='success'>" + message + "</div>";
	window.scrollTo(0, 0);
}

function convertStringToDate(value) {
	if (value == "" || value == null) {
		return "";
	}
	var dt = new Date(value);
	var day = dt.getDate();
	return (day > 9 ? day : "0" + day) + "-" + convertMonth(dt.getMonth() + 1) + "-" + dt.getFullYear();
}

function convertMonth(month) {
	switch (month) {
		case 1:
			return "Jan";
		case 2:
			return "Feb";
		case 3:
			return "Mar";
		case 4:
			return "Apr";
		case 5:
			return "May";
		case 6:
			return "Jun";
		case 7:
			return "Jul";
		case 8:
			return "Aug";
		case 9:
			return "Sep";
		case 10:
			return "Oct";
		case 11:
			return "Nov";
		case 12:
			return "Dec";
	}
}

function convertToMonth(month) {
	switch (month) {
		case "Jan":
			return 1;
		case "Feb":
			return 2;
		case "Mar":
			return 3;
		case "Apr":
			return 4;
		case "May":
			return 5;
		case "Jun":
			return 6;
		case "Jul":
			return 7;
		case "Aug":
			return 8;
		case "Sep":
			return 9;
		case "Oct":
			return 10;
		case "Nov":
			return 11;
		case "Dec":
			return 12;
	}
	return 0;
}

function getCookie(cookieName) {
    var arg = cookieName + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg) {
            return getCookieVal(j);
        }
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break; 
    }
    return null;
}

// Delete data from cookie
function deleteCookie(cookieName) {
    var expires = new Date ();
    if (getCookie(cookieName)) {
        document.cookie = cookieName + "=''" + "; expires=" + expires.toGMTString();
    }
}

function getCookieVal(offset) {
    var endstr = document.cookie.indexOf (";", offset);
    if (endstr == -1) {
        endstr = document.cookie.length;
    }
    return unescape(document.cookie.substring(offset, endstr));
}



// Open new window
function centerWindow(width, height) {
    var left = parseInt((screen.availWidth/2) - (width/2));
    var top = parseInt((screen.availHeight/2) - (height/2));
    var windowFeatures = "width=" + width + ",height=" + height + 
                         ",status=yes,menubar=no,scroll=auto,titlebar=no,left=" + left + ",top=" + top + 
                         ",screenX=" + left + ",screenY=" + top;
    return windowFeatures;
}

// LTrim: Returns a String containing a copy of a specified
//        string without leading spaces
// Parameters:
//      String = The required string argument is any valid
//               string expression. If string contains null,
//               false is returned
// Returns: String
function LTrim(String) {
    var i = 0;
    var j = String.length - 1;
    if (String == null) {
        return ('');
    }
    for (i = 0; i < String.length; i++) {
        if (String.substr(i, 1) != ' ' && String.substr(i, 1) != '\t') {
            break;
        }
    }
    if (i <= j) {
        return (String.substr(i, (j+1)-i));
    } else {
        return ('');
    }
}

// RTrim: Returns a String containing a copy of a specified
//        string without trailing spaces
// Parameters:
//      String = The required string argument is any valid
//               string expression. If string contains null,
//               false is returned
// Returns: String
function RTrim(String) {
    var i = 0;
    var j = String.length - 1;
    if (String == null) {
        return ('');
    }
    for(j = String.length - 1; j >= 0; j--) {
        if (String.substr(j, 1) != ' ' && String.substr(j, 1) != '\t') {
            break;
        }
    }
    if (i <= j) {
        return (String.substr(i, (j+1)-i));
    } else {
        return ('');
    }
}

// RTrim: Returns a String containing a copy of a specified
//        string without both leading and trailing spaces
// Parameters:
//      String = The required string argument is any valid
//               string expression. If string contains null,
//               false is returned
// Returns: String
function Trim(String) {
    if (String == null) {
        return (false);
    }
    return RTrim(LTrim(String));
}

function DaysArray(n) {
	var day;
	day = 31;
	if (n==4 || n==6 || n==9 || n==11) {
		day = 30;
	}
	if (n==2) {
		day = 29;
	}
   return day;
}

function isDate(dtStr){
    //var dtStr = object.value;
    if(dtStr.length <= 0 || dtStr.length > 11) {
        return false;
    }
    //var daysInMonth = DaysArray(12);
    var pos1 = dtStr.indexOf(dtCh);
    var pos2 = dtStr.indexOf(dtCh, pos1 + 1);
    var strDay = dtStr.substring(0, pos1);
    var strMonth = dtStr.substring(pos1 + 1, pos2);
    var strYear = dtStr.substring(pos2 + 1, pos2 + 5);
    strYr = strYear;
    if (strDay.charAt(0) == "0" && strDay.length > 1) { 
        strDay = strDay.substring(1);
    }
    //if (strMonth.charAt(0)=="0" && strMonth.length > 1) { 
      //  strMonth=strMonth.substring(1);
    //}
    for (var i = 1; i <= 3; i++) {
        if (strYr.charAt(0)=="0" && strYr.length>1) { 
            strYr=strYr.substring(1);
        }
    }
    
    //var month = parseInt(strMonth);
    var day = parseInt(strDay, 10);
    var year = parseInt(strYr);
    
    if (pos1 == -1 || pos2 == -1) {
        //alert("The date format should be : dd-MMM-yyyy");
        return false;
    }
    /*if (isNaN(strMonth) || strMonth.length<1 || month<1 || month>12) {
        alert("Please enter a valid month");
        return false;
    }*/
	if (!IsMonth(strMonth))
	{
		//alert("Please enter a valid month");
        return false;
	}
	var nMonth = parseInt(convertToMonth(strMonth), 10);
	//if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
    if (isNaN(strDay) || strDay.length < 1 || day < 1 || day > 31 || (strMonth == "Feb" && day > daysInFebruary(year)) || day > DaysArray(nMonth)) {
        //alert("Please enter a valid day");
        return false;
    }
    if (isNaN(strYr) || strYear.length != 4 || year==0 || year < minYear || year > maxYear) {
        //alert("Please enter a valid 4 digit year between " + minYear + " and " + maxYear);
        return false;
    }

    return true;
}

function daysInFebruary(year) {
	if ((year % 4) == 0) {
		return 29;
	}
	else {
		return 28;
	}
}

function isTime(str) {
	var dPos = str.indexOf(dtCh2);
	if (dPos <= 0) {
		return false;
	} 
	var arrayTime = str.split(dtCh2);
	var nLength = arrayTime.length;
	if (nLength != 3) {
		return false;
	} 
	var hour = parseInt(arrayTime[0]);
    var minute = parseInt(arrayTime[1]);
    var second = parseInt(arrayTime[2]);
	if(arrayTime[0].length<1 || !isInteger(arrayTime[0]) || hour<1 || hour>24) {
		//alert("Please enter a valid hour !");
		return false;
	}

	if(arrayTime[1].length < 1 || !isInteger(arrayTime[1]) || minute < 0 || minute > 60) {
		//alert("Please enter a valid minute !");
		return false;
	}
	
	if(arrayTime[2].length < 1 || !isInteger(arrayTime[2]) || second < 0 || second > 60) {
		//alert("Please enter a valid second !");
		return false;
	}
	return true;
}

function IsMonth(month) {
	if (month.length != 3) {
		return false;
	}
	if (month == "Jan" || month == "Feb" || month == "Mar" || month == "Apr" || month == "May" || month == "Jun" || month == "Jul" || month == "Aug" || month == "Sep" || month == "Oct" || month == "Nov" || month == "Dec")
	{
		return true;
	}
	return false;
}

function compareDate (startDate, endDate) {
	var pos1 = startDate.indexOf(dtCh);
    var pos2 = startDate.indexOf(dtCh, pos1 + 1);
    var strDay = startDate.substring(0, pos1);
    var strMonth = startDate.substring(pos1 + 1, pos2);
    var strYear = startDate.substring(pos2 + 1, pos2 + 5);
	var month = convertMonth(strMonth);
	if (month == -1)
	{
		return false;
	}
	var start = new Date();
	start.setFullYear(parseInt(strYear), month, parseInt(strDay,10)); 
	
	var epos1 = endDate.indexOf(dtCh);                      
	var epos2 = endDate.indexOf(dtCh, epos1 + 1);            
	var estrDay = endDate.substring(0, epos1);               
	var estrMonth = endDate.substring(epos1 + 1, epos2);      
	var estrYear = endDate.substring(epos2 + 1, epos2 + 5);
	var emonth = convertMonth(estrMonth);                      
	if (emonth == -1)
	{
		return false;
	}
	var end = new Date();
	end.setFullYear(parseInt(estrYear), emonth, parseInt(estrDay,10)); 
	if (start > end) {
		return false;
	}
	return true;
}

function checkNumeric(value){		
	var anum=/((^)\d+$)|((^)\d+\.\d+$)/		
	if (anum.test(value))			
		return true;		
	return false;    
}

function checkInteger(value) {
	var anum=/((^)\d+$)/		
	if (anum.test(value))			
		return true;		
	return false;    
}

function changeProvince(obj, name) {
	var ddlDistrict = document.getElementById(name);
	var length = provDistRelation.length;
	var provinceId;
	var arrItem = null;
	var option = null;
	ddlDistrict.length = 1;
	if (checkInteger(obj.value)) {
		provinceId = parseInt(obj.value, 10);
	} else {
		provinceId = obj.value;
	}
	for (var i = 0 ; i < length; i++) {
		arrItem = provDistRelation[i];
		if (arrItem[0] == provinceId || provinceId == 0 || provinceId == 'MA==') {
			appendOption(ddlDistrict, arrItem[1], arrItem[2]);
		}
	}
}

function money(obj) {
	var value = obj.value.replace(/,/g, '');
	if (value.length < 4) return value;	
	value = fmtMoney(value, 0, '.', ',');
	value = value.replace('N', '00');
	return value;
}

function fmtMoney(n, c, d, t) {
	var m = ( c = Math.abs( c ) + 1 ? c : 2, d = d || ",", t = t || ".", /(\d+)(?:(\.\d+)|)/.exec( n + "" ) ), x = m[1].length % 3;
	return ( x ? m[1].substr( 0, x ) + t : "" ) + m[1].substr( x ).replace( /(\d{3})(?=\d)/g, "$1" + t ) + ( c ? d + ( +m[2] ).toFixed( c ).substr( 2 ) : "" );
}

function convertMoney(source) {
	var value = source.replace(/,/g, '');
	if (value.length < 4) return value;	
	value = fmtMoney(value, 0, '.', ',');
	value = value.replace('N', '00');
	return value;
}

function convertToMoney(obj) {
	obj.value = money(obj);
}

function IsEmail(Expression) {
    if (Expression == null) {
        return (false);
    }
    if(!checkSymbol(Expression)) {
        return (false);
    }
    var supported = 0;
    if (window.RegExp) {
        var tempStr = "a";
        var tempReg = new RegExp(tempStr);
        if (tempReg.test(tempStr)) {
            supported = 1;
        }
    }
    if (!supported) {
        return (Expression.indexOf(".") > 2) && (Expression.indexOf("@") > 0);
    }
    var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
    var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,4})(\\]?)$");
    return (!r1.test(Expression) && r2.test(Expression));
}

function checkSymbol(s) {
    var i;
    for(i=0;i<s.length;i++) {
        if((s.charAt(i)=='<')||(s.charAt(i)=='>')||(s.charAt(i)=='"')) {
            return false;
        }
    }
    return true;
}

function appendOption(obj, strValue, strText) {
    var optNew = document.createElement("option");
    var strNode = document.createTextNode(strText);
    optNew.setAttribute("value", strValue);
    optNew.appendChild(strNode);
    obj.appendChild(optNew);
}

function insertElement(obj, pos, strId, strValue, strText) {
	var optNew = document.createElement("option");
    var strNode = document.createTextNode(strText);
    optNew.setAttribute("value", strValue);
    optNew.setAttribute("id", strId);
    optNew.appendChild(strNode);
    obj.insertBefore(optNew, obj[pos]);
}

function checkClearAll()
{
	if (document.forms[0].C2.checked == 1) 	{
		for (var i=0;i<document.forms[0].elements.length;i++) {
			if (!document.forms[0].elements[i].disabled) {
				var e = document.forms[0].elements[i];
				e.checked = 1;
			}
		}
	} else {
		for (var i=0;i<document.forms[0].elements.length;i++) {
			var e = document.forms[0].elements[i];
			e.checked = 0;
		}
	}
}

function drawCorners() {
	//alert(navigator.userAgent.toLowerCase());
    settings = {
        tl: { radius: 10 },
        tr: { radius: 10 },
        bl: { radius: 10 },
        br: { radius: 10 },
        antiAlias: true,
        autoPad: true,
        validTags: ["div"]
    }

    var myBoxObject = new curvyCorners(settings, "myBox");
    myBoxObject.applyCornersToAll();
}

function showUtilities() {
	var cboWeather = document.getElementById("ctrlUtilities_cboWeather");
	if (cboWeather != null) {
		cboWeather.length = 0;
		var index = 0;
		for (var i = 0;i < weather.length;i++) {
			appendOption(cboWeather, weather[i][0], weather[i][1]);
			if (weather[i][0] == "tphanoi") index = i;
		}
		cboWeather[index].selected = true;
		showWeather(cboWeather[index].value);
	}
	showRates();
	showGold();
}

function showWeather(value) {
	for (var i = 0;i < weather.length;i++) {
		if (value == weather[i][0]) {
			var imgWeather = document.getElementById("ctrlUtilities_imgWeather");
			if (imgWeather != null) {
				imgWeather.innerHTML = "<img border='0' src='http://www.zing.vn/zing/Images/Weather/" + weather[i][3] + "'>"
			}
			var weatherInfo = document.getElementById("ctrlUtilities_weatherInfo");
			if (weatherInfo != null) {
				weatherInfo.innerHTML = "<b>" + weather[i][2] + "</b>, " + weather[i][4] + "<br>Độ ẩm: " + weather[i][5] + "<br>" + weather[i][6];
			}
			break;
		}
	}
}

function showRates() {
	var divrate = document.getElementById("ctrlUtilities_rate");
	if (divrate != null) {
		divrate.innerHTML = "";
		for (var i = 0; i < rate.length; i++) {
			divrate.innerHTML += "<div class='line'></div><div align=left><div class=left align=center  title='" + rate[i][1] + "'>" + rate[i][0] + "</div><div class=goldinfo align=right title='" + rate[i][0] + "'>" + rate[i][3] + "</div></div>";
		}	
	}
	
}

function showGold() {
	var divgold = document.getElementById("ctrlUtilities_gold");	
	if (divgold != null) {
		divgold.innerHTML = "";
		for (var i = 0; i < gold.length; i++) {
			divgold.innerHTML += "<div class='line'></div><div align='center' class='left'>" + gold[i][0] + "</div><div class='buy' align='right'>" + gold[i][1] + "</div><div class='sell' align='right'>" + gold[i][2] + "</div>";
		}
	}
}

var nomarkKeyA=new RegExp('[Ă,Â,Á,À,Ả,Ã,Ạ,Ắ,Ằ,Ẳ,Ẵ,Ặ,Ấ,Ầ,Ẩ,Ẫ,Ậ]','g');
var nomarkKeya=new RegExp('[ă,â,á,à,ả,ã,ạ,ắ,ằ,ẳ,ẵ,ặ,ấ,ầ,ẩ,ẫ,ậ]','g');
var nomarkKeyE=new RegExp('[Ê,É,È,Ẻ,Ẽ,Ẹ,Ế,Ề,Ể,Ễ,Ệ]','g');
var nomarkKeye=new RegExp('[ê,é,è,ẻ,ẽ,ẹ,ế,ề,ể,ễ,ệ]','g');
var nomarkKeyO=new RegExp('[Ô,Ơ,Ó,Ò,Ỏ,Õ,Ọ,Ố,Ồ,Ổ,Ỗ,Ộ,Ớ,Ờ,Ở,Ỡ,Ợ]','g');
var nomarkKeyo=new RegExp('[ô,ơ,ó,ò,ỏ,õ,ọ,ố,ồ,ổ,ỗ,ộ,ớ,ờ,ở,ỡ,ợ]','g');
var nomarkKeyU=new RegExp('[Ư,Ú,Ù,Ủ,Ũ,Ụ,Ứ,Ừ,Ử,Ữ,Ự]','g');
var nomarkKeyu=new RegExp('[ư,ú,ù,ủ,ũ,ụ,ứ,ừ,ử,ữ,ự]','g');
var nomarkKeyI=new RegExp('[Í,Ì,Ỉ,Ĩ,Ị]','g');
var nomarkKeyi=new RegExp('[í,ì,ỉ,ĩ,ị]','g');
var nomarkKeyY=new RegExp('[Ý,Ỳ,Ỷ,Ỹ,Ỵ]','g');
var nomarkKeyy=new RegExp('[ý,ỳ,ỷ,ỹ,ỵ]','g');
var nomarkKeyD=new RegExp('[Đ]','g');
var nomarkKeyd=new RegExp('[đ]','g');
var nomarkKeyOther=new RegExp('[!-/,:,\[-^,`,{-~]','g');

function removeUnicode(_string)
{
	_string=_string.replace(nomarkKeyOther,'');
	_string=_string.replace(/ /g,' ');
	_string=_string.replace(nomarkKeyA,'A');
	_string=_string.replace(nomarkKeya,'a');
	_string=_string.replace(nomarkKeyE,'E');
	_string=_string.replace(nomarkKeye,'e');
	_string=_string.replace(nomarkKeyO,'O');
	_string=_string.replace(nomarkKeyo,'o');
	_string=_string.replace(nomarkKeyU,'U');
	_string=_string.replace(nomarkKeyu,'u');
	_string=_string.replace(nomarkKeyI,'I');
	_string=_string.replace(nomarkKeyi,'i');
	_string=_string.replace(nomarkKeyY,'Y');
	_string=_string.replace(nomarkKeyy,'y');
	_string=_string.replace(nomarkKeyD,'D');
	_string=_string.replace(nomarkKeyd,'d');
	return _string;
}