﻿
//Kiểm tra định dạng ngày tháng
function checkDate(day, month, year)
{
    if(isNaN(day)|| isNaN(month) || isNaN(year)) return false;
    
    if(day>31 || month>12 || year.length <4 || year.length >4)
        return false;
        
	if ((month==4 || month==6 || month==9 || month==11) && day==31)
		return false;

	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap))
			return false;
	}
	return true;
}

/*
    0: date1 = date2
    1: date1 > date2
    2: date1 < date2
*/
function checkDate1NDate1(day1, month1, year1,day2, month2, year2)
{
//alert(year1 + ' - ' + year2);
    try
    {

        //các trường hợp return false
        if(parseInt(year1,10)>parseInt(year2,10))
        {
            return 1;
        }
        else if(parseInt(year1,10)==parseInt(year2,10))
        {
            if(parseInt(month1,10)>parseInt(month2,10))
            {
                return 1;
            }
            else if(parseInt(month1,10)==parseInt(month2,10) )
            { 
                if( parseInt(day1,10)==parseInt(day2,10))
                    return 0;
                else if( parseInt(day1,10)>parseInt(day2,10))
                    return 1;
                else
                    return 2;
            }
            else
                return 2;
        }//else
        else year1 < year2
        {
            return 2;
        }
    }
    catch(err){alert(err);}
    return -1;
}//function

//  false: date 1 > date 2 -- true: date 1 < date 2
function checkDate1NDate2(day1, month1, year1,day2, month2, year2)
{
    try
    {
        //các trường hợp return false
        if(parseInt(year1,10)>parseInt(year2,10))
        {
            return false;
        }
        else if(parseInt(year1,10)==parseInt(year2,10))
        {
            if(parseInt(month1,10)>parseInt(month2,10))
                return false;
            else if(parseInt(month1,10)==parseInt(month2,10) && parseInt(day1,10)>=parseInt(day2,10))
                return false;
        }//else
    }
    catch(err){alert(err);return false;}
    return true;
}//function

function checkEmail(mail){
	mail = mail.replace(/\s/g,'');
	var re=/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,4}$/
	if(mail.match(re) == null){
		return false;}
	return true;
}

// Chọn hết các checkbox trên page
function CheckAllCheckboxes(o) {
	    elm=document.forms[0].elements;
	    for(i=0;i<elm.length;i++)
	    if(elm[i].type=="checkbox" && elm[i].id!=o.id)
		    elm[i].checked = o.checked ; 
    }
    
// Item boxes
 function CheckItemBoxes(o,parentbox) {
        var objParentbox= document.getElementById(parentbox);
        if(o.checked==false) {
            objParentbox.checked=false;            
            return;
        }
        else{
	        elm=document.forms[0].elements;	   
	        for(i=0;i<elm.length;i++)
	            if(elm[i].type=="checkbox"  && elm[i].id!=objParentbox.id){
		            if(elm[i].checked==false)  return;
		        }
		   objParentbox.checked=true;
		}
    }
    
    //objhide: sau khi thuc hien xong an the div
 function fnImgSize(o,w,hi,bool,objhide){	 
            o.display="none"; 
	       var ho=0;    
	        if(o==null) return;
	        var hithub=o.height * w /o.width; 	        
	         if(hi!=null)  {
	                  
	            if(hithub>hi){	              
	                o.height=hi;	               
	            }
	          else  {          
	           
	               if(o.width>w) o.width=w;		                
	               if(bool!=null){ 
	                    ho=parseInt((hi-o.height)/2)	   
	                    o.style.marginTop= ho+ "px";
	                }                           
	            }
	       
	         }
	         else{     
	           //(hithub<=w)
	           if(o.width<=w) return;
	            if(hithub<=w)
	              { 
	                o.width=w;	                           
	                if(bool!=null){ 
	                    ho=parseInt((w-o.height)/2)	   
	                    o.style.marginTop= ho+ "px";
	                }
	               }
	             else o.height=w;	
	         }	  
	                         
	     if(objhide!=null)   document.getElementById(objhide).style.display="none";        	           
	     o.display="block";     
}
    
    

function locdau(str) {  
//debugger;
  str= str.toLowerCase();  
  str= str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g,"a");  
  str= str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g,"e");  
  str= str.replace(/ì|í|ị|ỉ|ĩ/g,"i");  
  str= str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g,"o");  
  str= str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g,"u");  
  str= str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g,"y");  
  str= str.replace(/đ/g,"d");     
  str= str.replace(/!|@|%|\^|\*|\(|\)|\+|\=|\<|\>|\?|\/|,|\.|\:|\;|\'| |\"|\&|\#|\[|\]|~|$|_/g,"-"); 
/* tìm và thay thế các kí tự đặc biệt trong chuỗi sang kí tự - */ 
  str= str.replace(/-+-/g,"-"); //thay thế 2- thành 1- 
  str= str.replace(/^\-+|\-+$/g,"");  
//cắt bỏ ký tự - ở đầu và cuối chuỗi  
  return str;  
  }   

function xreplace(checkMe,toberep,repwith){ 

    var temp = checkMe; 
    var i = temp.indexOf(toberep); 
    while(i > -1){ 
   
        temp = temp.replace(toberep, repwith); 
        i = temp.indexOf(toberep); 
    } 
    return temp; 
}

function Link(o,url,str){    
   //location.href=url+ locdau(str)+'/';
   if(o.href!='') return;
   o.href=url+ locdau(str)+'/';  
}



//cookie
var today = new Date();
var expiry = new Date(today.getTime() + 365 * 24 * 60 * 60 * 1000);

function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1) { endstr = document.cookie.length; }
  return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name) {
  var arg = name + "=";
  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;
  }


function DeleteCookie (name,path,domain) {
  if (GetCookie(name)) {
    document.cookie = name + "=" +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
  }

function SetCookie (name,value,expires,path,domain,secure) {
  document.cookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
  }
//end cookie



  function getClientWidth()  
    {  
      return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;  
    }  
  function getClientHeight()  
    {  
      return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;  
    }  



// trim
function leftTrim(sString) 
{
    while (sString.substring(0,1) == ' ')
    {
        sString = sString.substring(1, sString.length);
    }
    return sString;
}

function rightTrim(sString) 
{
    while (sString.substring(sString.length-1, sString.length) == ' ')
    {
        sString = sString.substring(0,sString.length-1);
    }
    return sString;
}

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;
}

// end trim


/*
    tam
    checkdate
*/




/**
 * DHTML date validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */
// Declaring valid date character, minimum year and maximum year
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strMonth=dtStr.substring(0,pos1)
	var strDay=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	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)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		alert("The date format should be : mm/dd/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Please enter a valid date")
		return false
	}
return true
}



function isDate2(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strMonth=dtStr.substring(0,pos1)
	var strDay=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	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)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		alert("Ngày định dạng phải là : dd/MM/yyyy")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Ngày không hợp lệ")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Tháng không hợp lệ")
		return false
	}
	
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Năm phải nằm trong khoản "+minYear+" và "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Ngày tháng không hợp lệ")
		return false
	}
return true
}

function ValidateForm(dt){
	//var dt=document.frmSample.txtDate
	if (isDate(dt.value)==false){
		dt.focus()
		return false
	}
    return true
 }
 
 function ValidateForm1(value){
	//var dt=document.frmSample.txtDate
	if (isDate(value)==false){		
		return false
	}
    return true
 }
 
  function ValidateForm2(value){
	//var dt=document.frmSample.txtDate
	if (isDate2(value)==false){		
		return false
	}
    return true
 }

/*=================================================================================
// các hàm khác
===================================================================================*/      
  // hàm này dùng để mở một url mới 
  function openUrl(url)
  {
        if( url.indexOf('http://') > -1)
            window.open(url);
        else if(url.length > 0)
            window.open("http://"+url);
  }
/*
window.open(URL,name,specs,replace)
 - name: _blank, _parent, ...
*/
function openPage( aspxPage_Path, width, height)
{
	var x = (window.screen.width-width)/2;
	var y = (window.screen.height-height)/2;
	//window.open(aspxPage_Path,null,"scrollbars=yes,resizable=yes,width="+width+",height="+height+",top=" + y + ",left=" + x);
	window.open(aspxPage_Path,null,"directories=no,status=no,location=no,scrollbars=yes,resizable=yes,titlebar=no,width="+width+",height="+height+",top=" + y + ",left=" + x,null);
}
function myTrimAll(str)
{

    if(!str || typeof str != 'string' || str.length==0)
        return "";
        //return null;

    return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');
}



  function salary_changeT(index,ddlSalaryMin,ddlSalaryMax)
 {  
    //index = 1: ddlSalaryFrom, index= 2: ddlSalaryTo
    var ddlSalaryMin = document.getElementById(ddlSalaryMin);
    var ddlSalaryMax = document.getElementById(ddlSalaryMax); 
    var min = parseInt(ddlSalaryMin.value,10);//SalaryID
    var max = parseInt(ddlSalaryMax.value,10);//SalaryID
    if( min>0 && max>0)
    {
        if(min ==1 ||  max == 12)
        {
            if(index==1)//ddlSalaryFrom click
                ddlSalaryMin.value = 0;
            else  //ddlSalaryTo click
                ddlSalaryMax.value = 0;
        }
        else if(min >= max)
        {
            if(index==1)//ddlSalaryFrom click
                ddlSalaryMin.value = 0;
            else  //ddlSalaryTo click
                ddlSalaryMax.value = 0;
        }
    }
 }//function
 
 
 function ChoseFromTo_change(index,ddlFrom,ddlTo)
 {  
    //index = 1: ddlSalaryFrom, index= 2: ddlSalaryTo
    var ddlSalaryMin = document.getElementById(ddlFrom);
    var ddlSalaryMax = document.getElementById(ddlTo); 
    var min = parseInt(ddlSalaryMin.value,10);//SalaryID
    var max = parseInt(ddlSalaryMax.value,10);//SalaryID
    if( min>0 && max>0)
    {
        if(min ==1 ||  max == 12)
        {
            if(index==1)//ddlSalaryFrom click
                ddlSalaryMin.value = 0;
            else  //ddlSalaryTo click
                ddlSalaryMax.value = 0;
        }
        else if(min >= max)
        {
            if(index==1)//ddlSalaryFrom click
                ddlSalaryMin.value = 0;
            else  //ddlSalaryTo click
                ddlSalaryMax.value = 0;
        }
    }
 }//function
 
 
 // cookie
 function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

// end cookie
