// 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 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;
    }
}

//set value to hiden field and submit form
function makeMode(value){
	rs=confirm("Are you sure for "+value+" Selected item.");
	if(rs==true){
		var elem=document.getElementById('mode');
		elem.value=value;
		elem.form.submit();
		return true;
	}else return false;
}

/**--------------------------------------------------------------
Begin Function for AJAX
*/

function startLoading() {
  // First we want to show the loading window then hide the content are we are loading into.
  //alert(document.getElementById('rs_ajax').value);
  Element.show("mainAreaLoading");
  Element.hide("mainAreaInternal");
}

function finishLoading() {
  setTimeout("Effect.toggle('mainAreaLoading');", 500);
}

function loadContent(frm) {
  // We make use of the Ajax.Updater function to load the external data from our file.
  // Start the loading window first by calling the function we made previously.
  //alert(document.getElementById('rs_ajax').value);
  startLoading();
new Ajax.Updater('mainAreaInternal', 'ajax_chk_back_link.php', {asynchronous:true, parameters:Form.serialize(frm),onComplete: succesRetourAjax});
}

function succesRetourAjax (t)
{
 	finishLoading();
	//alert(t.responseText);
 	document.getElementById('rs_ajax').value=t.responseText;
	document.getElementById('frm').submit();		
  // alert(t.responseText);
}

//show or hide input field for make new cateogires
function otherCat(val){
	if(val=='other') Element.show("other_cat");
	else Element.hide("other_cat");
}

//plus click statistic when click on the link with ajax
function lclick(id,url){
	new Ajax.Updater('clk'+id, url, {method: "post", postBody:"id="+id});
}
//update how many click with return value from ajax lclick();


/**----------------------------------------------------------------
Begin Function for Validatae Form
*/

// 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 isLength(elem, lmin, lmax){
	var uInput = elem.value;
	if(uInput.length >= lmin && uInput.length <= lmax){ //correct
		return true;
	}else{//incorrect

		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 madeSelection(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 URL pattern
function isURL(elem){
	var urlExp=/^(http|https|ftp):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z0-9]{1,6}((:[0-9]{1,5})?\/.*)?$/i;
	elem.value=elem.value.trim();
	if(elem.value.match(urlExp)){		return true;
	}else{		return false;	}
}

//check HTML TAG pattern
function isTag(elem){
	var tagExp = /[<>]/;
	elem.value=elem.value.trim();
	if(elem.value.match(tagExp)){		return true;
	}else{		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 for comparetion date
  option '=' : d1==d2
  		 '>' : d1>d2
		 '<' : d1<d2
  Return true when pasted input date form today
*/
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;
	}
}

/**-----------------------------------------------------------------
form validate function
*/
function chkAddLinkForm(f){
	var err=0;
	var msg="Input Validation.\n";
	if(isEmpty(f.title) || isTag(f.title)){
		err++;
		msg+=err+". Invalid Site Title\n";
	}
	if(isEmpty(f.cat_id)){
		err++;
		msg+=err+". Invalid Categories\n";
	}else if(f.cat_id.value=='other' && isEmpty(f.new_cat)){
		err++;
		msg+=err+". Please Specify Categories Name\n";
	}
	if(!isURL(f.web)){
		err++;
		msg+=err+". Invalid URL\n";
	}
/*	if(!isEmpty(f.img_url) && f.img_url.value.toLowerCase()!="http://" && !isURL(f.img_url)){
		err++;
		msg+=err+". Invalid Image URL\n";
	}*/
	if(!isURL(f.url_bk_link)){
		err++;
		msg+=err+". Invalid Link Back URL\n";
	}
	if(isEmpty(f.name) || isTag(f.name)){
		err++;
		msg+=err+". Invalid Contact Name\n";
	}
	if(!isEmail(f.email)){
		err++;
		msg+=err+". Invalid Email Address\n";
	}
	if(isTag(f.desc)){
		err++;
		msg+=err+". Invalid Description\n";
	}
	if(isEmpty(f.captcha)){
		err++;
		msg+=err+". Invalid Captcha\n";
	}
	
	if(err==0) return true; //no error
	else{
		alert(msg);
		return false;
	}
}

/**-----------------------------------------------------------------
form validate function FOR ADMIN
*/
function admin_chkAddLinkForm(f){	
var err=0;
	var msg="Input Validation.\n";
	if(isEmpty(f.title) || isTag(f.title)){
		err++;
		msg+=err+". Invalid Site Title\n";
	}
	if(isEmpty(f.cat_id)){
		err++;
		msg+=err+". Invalid Categories\n";
	}else if(f.cat_id.value=='other' && isEmpty(f.new_cat)){
		err++;
		msg+=err+". Please Specify Categories Name\n";
	}
	if(!isURL(f.web)){
		err++;
		msg+=err+". Invalid URL\n";
	};

	if(isTag(f.desc)){
		err++;
		msg+=err+". Invalid Description\n";
	}

	
	if(err==0) return true; //no error
	else{
		alert(msg);
		return false;
	}
}