// JavaScript Document

/* Add method trim() into string object*/
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}

/*function for set value of hidden field for mode and submit form*/
function setValue(elem,value){
	elem.value=value;
}
function setMode_Submit(frm,mode_elem,mode_val){
	mode_elem.value=mode_val;
	frm.submit();
}

//confirm submit befor submit form
//Call function :: onclick"return confirmSubmit('Are you sure')"
function confirmSubmit(text){
	var agree=confirm(text);
	if (agree)	return true ;
	else	return false ;
}

/*select all text in textarea*/
function selectAll(elem){
	elem.focus();
	elem.select();
}

//check / uncheck  for checkbox list
function checkAll(name,set_to){
	var checks = document.getElementsByName(name);
	var boxLength = checks.length;
	for ( i=0; i < boxLength; i++ ) {
        checks[i].checked = set_to;
    }
}

// <-- Begin
function CountWords (this_field, num_word ,elem_count/*, show_word_count, show_char_count*/) {
/*Original:  Shawn Seley 
 This script and many more are available free online at 
 The JavaScript Source!! http://javascript.internet.com */
/*	if (show_word_count == null) show_word_count = true;
	if (show_char_count == null) show_char_count = false;*/
	
	var elem_count=elem_count||document.getElementById('word_left');
	var char_count = this_field.value.length;
	var fullStr = this_field.value + " ";
	var initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi;
	var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");
	var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9]+/gi;
	var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");
	var splitString = cleanedStr.split(" ");
	var word_count = splitString.length -1;

	var content="";
	if(word_count>num_word){
		for (i=0;i<num_word;i++) {
			content=content+splitString[i]+" ";
			this_field.value=content;
			word_count=num_word;
		}
		var timer=setTimeout(this_field,100);

	}
	elem_count.value=(num_word)-(word_count);

}
//  End -->
// <-- Begin
function CountChar (this_field, num_char,elem_count /*, show_word_count, show_char_count*/) {
	var elem_count=elem_count||document.getElementById('char_left');
	var char_count = this_field.value.length;
	var content="";
	if(char_count>num_char){
		content=this_field.value.substring(0,num_char);
		this_field.value=content;
		var timer=setTimeout(this_field,100);
	}
//	document.getElementById("char_left").value=(num_char)-(char_count);
	elem_count.value=(num_char)-(char_count);

}
//  End -->

// If the element's string matches the regular expression it is all numbers
function isNumeric(elem){
	var numericExpression = /^[0-9]+$/;
	if(elem.value.match(numericExpression)){
		return true;
	}else{

		return false;
	}
}

// If the element's string matches the regular expression it is all letters
function isAlphabet(elem){
	var alphaExp = /^[a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		return false;
	}
}

// If the element's string matches the regular expression it is numbers and letters
function isAlphanumeric(elem){
	var alphaExp = /^[0-9a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		return false;
	}
}

// If the element's string matches the regular expression for zip code 
//it is numbers and letters and space
function isZip(elem){
	var alphaExp = /^[0-9a-zA-Z-+\s]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		return false;
	}
}

// If the element's string matches the regular expression for telephone number
//it is numbers and letters and space
function isTel(elem){
	var alphaExp = /^[0-9-+\s]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		return false;
	}
}

// check length of element value
function chkLength(elem, lmin, lmax){
	var uInput = elem.value;
	if(uInput.length >= lmin && uInput.length <= lmax){
		return true;
	}else{

		return false;
	}
}

//check Checked Checkbox
function isChecked(elem){
	var len= elem.length;
	var c=false;
	for(var i=0; i<len; i++){
		if(elem[i].checked==true){
			c=true; break;
		}
	}
	if(c==true){
		return true;
	}else{
		return false;
	}
}
//check selected listbox
function isSelected(elem){
	if(elem.value == "none"){
		return false;
	}else{
		return true;
	}
}

//check email pattern
function isEmail(elem){
	var emailExp = /^[a-zA-Z_]+[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	elem.value=elem.value.trim();
	if(elem.value.match(emailExp)){

		return true;
	}else{

		return false;
	}
}

//check email validate 2
function isUsername(elem){
	var usExp =  /^[a-zA-Z]+[a-zA-z0-9_-]{3,20}$/;
	elem.value=elem.value.trim();
	if(elem.value.match(usExp)){
	
		return true;
	}else{

		elem.focus();
		return false;
	}

} 

//check empty field  . if empty return true
function isEmpty(elem) {
	elem.value=elem.value.trim();
   	if ((elem.value.length==0) || (elem.value=="") || (elem.value==null))  
		return true;  //empty field return true
   	else { 

   	  	return false; //not empty return false
   	}
}	

function dateCompare(d1,d2,opt){
	var rs=false;
		Date1=new Date(); 
		var temp = new Array(); // create array object
		temp = d1.split('-'); 
		Date1.setFullYear(temp[2],(temp[1]-1),temp[0]);//set value to myDate object
		
		Date2=new Date(); 
		var temp = new Array(); // create array object
		temp = d2.split('-'); 
		Date2.setFullYear(temp[2],(temp[1]-1),temp[0]);
		
		if(opt==null) opt='=';
		switch(opt){
			case '=' : 
					if(Date1==Date2) rs=true;
					break;
			case '>' :  
					if(Date1>Date2)	rs=true;
					break;
			case '<' : 
					if(Date1<Date2)	rs=true;
					break;
			default : rs=false;
					break;
		}
	return rs;

}

/*Function for check date is the past date or not
  Return true when pasted input date form today
*/
function isPastDate(elem){
	if(!isEmpty(elem)){
		curDate=new Date(); // get today date
		myDate = new Date(); // create date object
		
		uDate=elem.value;
		var temp = new Array(); // create array object
		temp = uDate.split('-'); 
		myDate.setFullYear(temp[2],(temp[1]-1),temp[0]);//set value to myDate object
		
		if(myDate<curDate){
		
			return true;
		}else {
		
			return false;
			
		}
	}else 	{
		
		return false;
		}
}

function isFutureDate(elem){
	if(!isEmpty(elem)){
		curDate=new Date(); // get today date
		myDate = new Date(); // create date object
		
		uDate=elem.value;
		var temp = new Array(); // create array object
		temp = uDate.split('-'); 
		myDate.setFullYear(temp[2],(temp[1]-1),temp[0]);//set value to myDate object
		
		if(myDate>=curDate){
		
			return true;
		}else {
		
			return false;
		}
	}else{ 	
		
		return false;
	}
}


function opener_getForm(frm,go_to){
	var arg="";
	if(frm!=0){
		clr_help_txt(frm);
		var len=frm.length;
		arg="?";
		for(var i=0; i<len;i++){
			arg+=""+frm[i].name+"="+frm[i].value;
			if((i+1)<(len)) arg+="&";
		}
	}
	opener.location=go_to+arg;
	self.close();
}
