// ################################################## //
// ===============JavaScript Document================ //
// The belo functions validate different input fields //
// ========created by santrooper@gmail.com=========== //
// ################################################## //

function jstrim(strToTrim){
	return strToTrim.replace(/^\s+|\s+$/g,"");
}

function getDomain(){
   var rootDir = (jstrim(window.location.hostname).toLowerCase()=='localhost')?'/minicab/':'/';
   //var rootDir = (jstrim(window.location.hostname).toLowerCase()=='localhost')?'/minicab/':'/Minicab/';
   var domain  = 'http://'+jstrim(window.location.hostname)+rootDir;
   return(domain);
}

function isEmptyField(fldval){
	rtnval=(jstrim(fldval)=='')?true:false;
	return(rtnval);
}

function validEmail(usremail){
	var emailexpr = new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
	usremail=jstrim(usremail);
	rtnval=(emailexpr.test(usremail))?true:false;
	return(rtnval);
}

function validText(usrtext){
	//var textexpr = new RegExp(/!|@|\$|\^|#|\*|&|\%|\+|=|\-|\?|~|`|'|"|;|,|\.|:|\[|\]|\(|\)|\{|\}|<|>|[0-9]|\|/g);
	var textexpr = new RegExp(/!|@|\$|\^|#|\*|&|\%|\+|=|\-|\?|~|`|'|"|;|,|\.|:|\[|\]|\(|\)|\{|\}|<|>|\|/g);
	usrtext=jstrim(usrtext);
	rtnval=(textexpr.test(usrtext))?true:false;
	return(rtnval);
}

function validURL(usrurl){
	var urlexpr = new RegExp(/^(?:http:\/\/)?(?:[\w-]+\.)+[a-z]{2,6}$/i);
	usrurl=jstrim(usrurl);
	rtnval=(urlexpr.test(usrurl))?true:false;
	return(rtnval);
}

function validInput(checktype, fieldval){
	fieldval=jstrim(fieldval);
	switch(checktype){
		case 'number':
			chrpool=/^[0-9]+$/;
		break;
		case 'character':
			chrpool=/^[A-Za-z]+$/;
		break;
		case 'alphanumeric':
			chrpool=/^[A-Za-z0-9]+$/;
		break;
		default:
			chrpool=/^[A-Za-z0-9]+$/;
		break;
	}
	var trgexpr = new RegExp(chrpool);
	rtnval=(trgexpr.test(fieldval))?true:false;
	return(rtnval);
}

function getSelectElementData(selectID){
	selectObj=document.getElementById(selectID);
	
	if(selectObj){
		returnTYP=(arguments.length>1 && jstrim(arguments[1])=='text')?'text':'value';
		
		var rtnvalsarray = new Array();
		var rtnVal='';
		
		for (i=0; i<selectObj.length; i++) {
			if(selectObj.options[i].selected){
				if(returnTYP=='text'){
					rtnvalsarray[rtnvalsarray.length] = selectObj.options[i].text;
				}
				else{
					rtnvalsarray[rtnvalsarray.length] = selectObj.options[i].value;
				}
			}
		}
		
		//################################//
		
		rtnVal=(rtnvalsarray.length>0)?rtnvalsarray:new Array();
		
		return(rtnVal);
	}
}

function getItemsGroupedByIdPrefix(idprefix){
	var inputObjArr = document.getElementsByTagName('input');
	var requiredObjArr=new Array();
	var x=0;
	var prefixlength=idprefix.length;
	
	for(var i=0; i<inputObjArr.length; i++){
		currantid=inputObjArr[i].id;
		if(currantid.substr(0,prefixlength)==idprefix){
			requiredObjArr[x]=currantid;
			x++;
		}
	}
	
	return(requiredObjArr);
}

function hasCheckedItemAmongGroupedByIdPrefix(idprefix){
	var requiredObjArr=getItemsGroupedByIdPrefix(idprefix);
	var ischecked=false;
	
	if(requiredObjArr.length>0){
		for(p=0;p<requiredObjArr.length;p++){
			if(document.getElementById(requiredObjArr[p]).checked){
				ischecked=true;
				break;
			}
		}
	}
	return(ischecked);
}

function allItemsCheckUncheckGroupedByIdPrefix(sourceobjid,idprefix){
	var requiredObjArr=getItemsGroupedByIdPrefix(idprefix);
	var ischecked=false;
	
	if(requiredObjArr.length>0){
		srcObj=document.getElementById(sourceobjid);
		if(srcObj.checked){
			for(p=0;p<requiredObjArr.length;p++){
				document.getElementById(requiredObjArr[p]).checked=true;
			}
		}
		else{
			for(p=0;p<requiredObjArr.length;p++){
				document.getElementById(requiredObjArr[p]).checked=false;
			}
		}
	}
}

function getAllCheckedItemsGroupedByIdPrefix(idprefix){
	var requiredObjArr=getItemsGroupedByIdPrefix(idprefix);
	var ischecked=false;
	
	var checkValArr=new Array();
	
	if(requiredObjArr.length>0){
		k=0;
		for(p=0;p<requiredObjArr.length;p++){
			if(document.getElementById(requiredObjArr[p]).checked){
				checkValArr[k]=document.getElementById(requiredObjArr[p]).value;
				k++;
			}
		}
	}
	
	var checkValStr=(checkValArr.length>0)?checkValArr.join('~'):'';
}

function togolShowHideDiv(divId,viewMode){
	divObj=document.getElementById(divId);
	divContent=(arguments.length>2 && jstrim(arguments[2])!='')?jstrim(arguments[2]):'';
	if(viewMode=='show'){
		divObj.style.display="block";
		divObj.style.visibility="visible";
		if(divContent!=''){
			divObj.innerHTML=divContent;
		}
	}
	if(viewMode=='hide'){
		divObj.style.display="none";
		divObj.style.visibility="hidden";
		/*//divObj.innerHTML='';//*/
	}
}

function putHtmlInContainer(containerid,content){
	document.getElementById(containerid).innerHTML=content;
}

function populateSelectList(selectid,keyvalueArr,selectedval){
	selectObj=document.getElementById(selectid);
	//==Clear select list==//
	for(j=0;j<selectObj.length;j++){
		selectObj.remove(j);
	}
	//====================//
	i=0;
	for( var sIndex in keyvalueArr ) {
		stats=(sIndex==selectedval)?true:false;
		coursesubcatObj.options[i] = new Option(keyvalueArr[sIndex],sIndex,false,stats);
		i++;
	}
}

function disableContextMenu(elemrnt) {
    elemrnt.oncontextmenu = function() {
       return false;
    }
}

//#######################################################################//
