﻿//check the browser used
var isIE = document.all ? true:false;
var isNS = document.layers ? true:false;

//ban '
function notThat(e){
	var key;
	if(window.event){
		key = e.keyCode;
	}else if(e.which){
		key = e.which;
	}
	var isThat = (key == 39) ? true : false;
	
	key = (!isThat) ? 0 : key;
	return (isThat);
}

//char only
function onlyChar(e) {
  var key;
  var isCtrl = false;
  if(window.event){
		key = e.keyCode;
		isCtrl = window.event.ctrlkey;
	}else if(e.which){
		key = e.which;
		isCtrl = e.ctrlKey;
  }
  
  var isChar = (key > 96 && key < 123) ? true : false;
  var spaceOk = (key > 31 && key < 33) ? true : false;
  
  key = (!isChar && !spaceOk) ? 0 : key;
  return (isChar || spaceOk);
}

//no funny character
function notFunny(e){
  var key;
  var isCtrl = false;
  if(window.event){
		key = e.keyCode;
		isCtrl = window.event.ctrlkey;
	}else if(e.which){
		key = e.which;
		isCtrl = e.ctrlKey;
  }
  
  var isChar = (key > 96 && key < 123) ? true : false;
  var isNum = (key > 47 && key < 58) ? true : false;
  var spaceOk = (key > 31 && key < 33) ? true : false;
  
  key = (!isChar && !isNum && !spaceOk) ? 0 : key;
  return (isChar || isNum || spaceOk);	
}

//none
function isNull(e){
	var key;
	if(window.event){
		key = e.keyCode;
	}else if(e.which){
		key = e.which;
	}
	
	var isChar = (key > 31 && key < 127) ? true : false;
	key = (isChar) ? 0 : key;
	return (!isChar);
}

//numeric only
function onlyDigits(obj, e, allowDecimal, allowNegative) {
	var key;
	var isCtrl = false;
	var keyChar;
	var reg;
	
	if(window.event){
		key = e.keyCode;
		isCtrl = window.event.ctrlkey;
	}else if(e.which){
		key = e.which;
		isCtrl = e.ctrlKey;
	}
	
	if(isNaN(key)) return true;
	
	keychar = String.fromCharCode(key);
	
	//check for backspace or delete, or if Ctrl was pressed
	if(key == 8 || isCtrl){
		return true;	
	}
	
	reg = /\d/;
	var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
	var isFirstD = allowDecimal ? keychar == "." && obj.value.indexOf('.') == -1 : false;
	
	return isFirstN || isFirstD || reg.test(keychar);
}

//Name
function isName(obj, e){
  var key;
  var isCtrl = false;
  if(window.event){
		key = e.keyCode;
		isCtrl = window.event.ctrlkey;
	}else if(e.which){
		key = e.which;
		isCtrl = e.ctrlKey;
  }
  
  var backOk = (key == 8) ? true : false;
  var delOk = (key == 127) ? true : false;
  var isCap = (key > 64 && key < 133) ? true : false;
  var isChar = (key > 96 && key < 123) ? true : false;
  var spaceOk = (key > 31 && key < 33) ? true : false;
  var isTab = (key == 9) ? true : false;
  var aOk = (key == 64 && (obj.value.indexOf("@") < 0 || obj.value.length == 0)) ? true : false;
  var uOk = (key == 95 && (obj.value.indexOf("_") < 0 || obj.value.length == 0)) ? true : false;
  
  key = (!isChar && !spaceOk && !aOk && !uOk && !backOk && !delOk && !isCap && !isTab) ? 0 : key;
  return (isChar || spaceOk || aOk || uOk || backOk || delOk || isCap || isTab);
}

//For Phone
function isPhone(obj, e){
	var key;
	if(window.event){
		key = e.keyCode;
	}else if(e.which){
		key = e.which;
	}
	
	var plusok = (key == 43 && (obj.value.indexOf("+") < 0 || obj.value.length == 0)) ? true : false;
	var dashok = (key == 45 && (obj.value.indexOf("-") < 0 || obj.value.length == 0)) ? true : false;
	var isNum = (key > 47 && key < 58) ? true : false;
	var isTab = (key == 9) ? true : false;
	key = (!plusok && !dashok && !isNum  && !isTab) ? 0 : key;
	return (plusok || dashok || isNum || isTab);
}

//date
function isDate(e,decReq){
  var key = (isIE) ? window.event.keyCode : e.which;
  var obj = (isIE) ? event.srcElement : e.target;
  var isNum = (key > 47 && key < 58) ? true:false;
  var slashOk = (key==47 && decReq=='decOK') ? true:false;
  window.event.keyCode = (!isNum && !slashOk && isIE) ? 0:key;
  e.which = (!isNum && !slashOk && isNS) ? 0:key;
  return (isNum || slashOk);
}

//email
function isEmail(obj, e){
  var key;
  var isCtrl = false;
  if(window.event){
		key = e.keyCode;
		isCtrl = window.event.ctrlkey;
	}else if(e.which){
		key = e.which;
		isCtrl = e.ctrlKey;
  }
  
  var backOk = (key==8) ? true : false;
  var delOk = (key==127) ? true : false;
  var underOK = (key==95) ? true:false;
  var isNum = (key>47 && key<58) ? true:false;
  var isChar = (key > 96 && key < 123) ? true:false;
  var aOk = (key == 64 && (obj.value.indexOf("@") < 0 || obj.value.length == 0)) ? true : false;
  var dotOk = (key == 46) ? true:false;
  var isTab = (key == 9) ? true : false;
  
  key = (!underOK && !isNum && !isChar && !aOk && !dotOk && !backOk && !delOk && !isTab) ? 0:key;
  return (underOK || isNum || isChar || aOk || dotOk || backOk || delOk || isTab);	
}

//uppercase
function upper(x){
  var y = document.getElementById(x).value;
  document.getElementById(x).value = y.toUpperCase();
}

//lowercase
function lower(x){
  var y = document.getElementById(x).value;
  document.getElementById(x).value = y.toLowerCase();
}

//address
function isAdd(e) {
	var key;
	if(window.event){
		key = e.keyCode;
	}else if(e.which){
		key = e.which;
	}
	
	var isChar = (key > 96 && key < 123) ? true:false;
	var isNum = (key > 47 && key < 58) ? true:false;
	var breOk = (key >39 && key < 42) ? true:false;
	var norOk = (key > 43 && key < 48) ? true:false;
	var underOk = (key > 94 && key < 96) ? true:false;
	var hashOk = (key > 34 && key < 36) ? true:false;
	var aOk = (key > 63 && key < 65) ? true:false; 
	
	key = (!isChar && !isNum && !breOk && !norOk && !underOk && !hashOk && !aOk) ? 0 : key;
	return (isChar || isNum || breOk || norOk || underOk || hashOk || aOk);
}

//check url (on the spot)
function fastCheckURL(element_id){
	var autohttp = true;
	//true = enable auto prepend 'http://' function
	//false = disable auto prepend 'http://' function
	
	var element = document.getElementById(element_id);
	var raw_url = element.value.toLowerCase();
	if(raw_url != ""){
		var http_index = raw_url.indexOf("http://");
		var https_index = raw_url.indexOf("https://");
		
		if(http_index != 0 && https_index != 0){
			if(element.value.charCodeAt(0) != 32)	{
				element.value = "http://"+ raw_url;	
			}								
		}
	}
	return element.value;
}