var sRoot = 'http://www.geeks-in-route.com/'

/*============================================================================================================
HTML Function
==============================================================================================================*/

function onLoad(){		
	if (document.getElementById('lblError') != null){
		document.getElementById('rowError').style.display='';
	}
}

/*
text 
textarea 
password 
select-one 
radio 
checkbox 
submit 
select-multiple
*/


/*============================================================================================================
Form Validation Function
==============================================================================================================*/

function doCommand(sCommand, iID){	
	document.Form1.elements["db_command"].value = sCommand;	
	switch (sCommand) {
		case "delete" :
				var r = confirm('Are you sure, do you want to delete record ?');
				if (r) {
					if (iID > 0) {document.Form1.elements["db_id"].value = iID;}
					document.Form1.submit();
				}
				break;
	}
}

function getFTB(oFTB){	
	if (document.getElementById('_FTB_' + oFTB) != null){		
		document.getElementById('_FTB_' + oFTB).value = document.getElementById(oFTB).value;
	}else{
		document.getElementById('_FTB').value = document.getElementById(oFTB).value;
	}
}

function validateForm(oForm){
				
		var e = '';
		var r = true;				
		var arrElements = new Array();
		arrElements[0] = '';				
		// Loop through element
		for (i = 0; i < oForm.elements.length; i++) {
			var oElement = oForm.elements[i];					
			//TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT | RESET | FILE | HIDDEN | IMAGE | BUTTON
			//REQUIRED UNDEFINED
			//alert(oElement.type + '  ' + oElement.name + '  ' + (oElement.value == ''));	
			if (oElement.attributes["required"] != undefined) {
			
				//REQUIRED 
				if (oElement.attributes["required"].value == "1" || oElement.attributes["required"].value == 1	|| oElement.attributes["required"].value == true
							|| oElement.attributes["required"].value == "required")
				{	
					//alert(oElement.type + '  ' + oElement.name + '  ' + oElement.attributes["eMessage"].value);
					//SWITCH
					switch ((oElement.type).toLowerCase()) {
						case "text" :											
							if (oElement.value == '')
							{									
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;
							} else {
								if (oElement.attributes["isemail"] != undefined){
									if (!isEmail(oElement.value)){
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									}
								} else if (oElement.attributes["isnumber"] != undefined){
									if (isNaN(oElement.value)) { 
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									}
								} else if (oElement.attributes["isdate"] != undefined){									
									oElement.value = formatDate(oElement.value)								    
									var sDate = oElement.value;									 
									if (sDate.length < 8) {
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									} else if (!isDate(sDate.substr(3,2), sDate.substr(0,2), sDate.substr(6,4))) { 
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									}			
								} else if (oElement.attributes["istime"] != undefined){
									var sTime = oElement.value;
									if (sTime.length < 5) {
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									} else if (!isTime(sTime)) { 
										e += "\n" + oElement.attributes["eMessage"].value;	
										r = false;	
									}
								}
							}										
							break;								
						case "password" :											
							if (oElement.value == '')
							{	
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;
							}											
							break;								
						case "textarea" :											
							if (oElement.value == '')
							{									
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;
							}											
							break;										
						case "select-one" : 	
							if (oElement.selectedIndex == -1 || oElement.value == "")
							{									
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;
							}		
							break;									
						case "select-multiple" : 										
							if (oElement.selectedIndex == -1)
							{									
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;
							}		
							break;									
						case "checkbox" :									
							if (!isArrayExists(arrElements, oElement.name)) {
								//alert(oElement.length + '   ' + oElement.name + '  ' + oElement.attributes["required"].value + '  ' + oElement.attributes["eMessage"].value);													
								if (!validateArrElements(eval("oForm." +  oElement.name))) {
									e += "\n" + oElement.attributes["eMessage"].value;	
									r = false;
								}		
							}		
							break;
						case "radio" :
								if (!isArrayExists(arrElements, oElement.name)) {
								//alert(oElement.length + '   ' + oElement.name + '  ' + oElement.attributes["required"].value + '  ' + oElement.attributes["eMessage"].value);													
								if (!validateArrElements(eval("oForm." +  oElement.name))) {											
									e += "\n" + oElement.attributes["eMessage"].value;												
									r = false;
								}																				
								}
								
							break;
						case "hidden" : 
							if (oElement.value == '')
							{									
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;
							}	
							break;
						case "file" : 
							if (oElement.value == '')
							{									
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;
							}	
							break;	
					} //SWITCH	
				
					
				}	//REQUIRED 
				
				
			} //REQUIRED UNDEFINED	
			else {
			
				    if (oElement.value != '')
					{			
			            if (oElement.attributes["isemail"] != undefined){
							if (!isEmail(oElement.value)){
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;	
							}
						} else if (oElement.attributes["isnumber"] != undefined){
							if (isNaN(oElement.value)) { 
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;	
							}
						} else if (oElement.attributes["isdate"] != undefined){									
						    oElement.value = formatDate(oElement.value)						    
							var sDate = oElement.value;							 
							if (sDate.length < 8) {
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;	
							} else if (!isDate(sDate.substr(3,2), sDate.substr(0,2), sDate.substr(6,4))) { 
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;	
							}									
						} else if (oElement.attributes["istime"] != undefined){
							var sTime = oElement.value;
							if (sTime.length < 5) {
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;	
							} else if (!isTime(sTime)) { 
								e += "\n" + oElement.attributes["eMessage"].value;	
								r = false;	
							}
						}
					}
		    } 
			
		}	
		
		if (!r){				
			alert("The following must be completed first:\n" + e);	
		}
		
		return r;
	
	}

// Validate checkbox and radio 			
function validateArrElements(oElements){
	var arr = true;
	if (oElements.length == undefined) {
		arr = oElements.checked;
		//alert(' Checked = ' + oRadio.eMessage);	
	} else {					
		for (k = 0; k < oElements.length; k++) {
			arr = oElements[k].checked
			//alert('Radio ' + oElements[i].checked + '  ' + oElements[i].name);
			if ( arr == true ) { 							
				break; 
			}
			//alert(oElements.value);	
		}	
	}
	return arr;
}
			
// Stores Array Object Name
function isArrayExists(arrElements, sValue){
	
	var iAE = false;
	var a = 0;
	do {					
		a += 1;					
		if (arrElements[a] == sValue) {
			//alert('Array Value   : ' + i + '  ' + arrElements[i] + '   ' + sValue + '    ' + (arrElements[i] == sValue));
			iAE = true;
			break;
		}
								
	}					
	while (a < arrElements.length)
	
	if (iAE == false) { arrElements[arrElements.length] = sValue; }
						
	return iAE;	
			
}

/* Email  */
function isEmail(sEmail) {

		var at="@"
		var dot="."
		var lat=sEmail.indexOf(at)
		var lstr=sEmail.length
		var ldot=sEmail.indexOf(dot)

		
		if (sEmail.substring(ldot+1,ldot+2)=="") { return false }

		if (sEmail.indexOf(at)==-1){ return false }

		if (sEmail.indexOf(at)==-1 || sEmail.indexOf(at)==0 || sEmail.indexOf(at)==lstr){ return false }

		if (sEmail.indexOf(dot)==-1 || sEmail.indexOf(dot)==0 || sEmail.indexOf(dot)==lstr){ return false }

		if (sEmail.indexOf(at,(lat+1))!=-1){ return false }

		if (sEmail.substring(lat-1,lat)==dot || sEmail.substring(lat+1,lat+2)==dot){ return false }

		if (sEmail.indexOf(dot,(lat+2))==-1){ return false }
		
		if (sEmail.indexOf(" ")!=-1){ return false }
		
		return true	
						
}


/* Time */
function isTime(sTime) {		 
		if (isNaN(sTime.substr(0, 2)) || isNaN(sTime.substr(3, 2)) || (sTime.substr(2, 1) != ":")){
			return false;
		} else if ((sTime.substr(0, 2) < 00) || (sTime.substr(0, 2) > 23)){
			return false;
		} else if ((sTime.substr(3, 2) < 00) || (sTime.substr(3, 2) > 60)){
			return false;
		} else { return true; }
	}
	

/* Date */
function isDate(day, month, year) {
  	// 0 - 11 Jan - Dec
  	var dtDate = new Date(year, month - 1, day);

  	if ((dtDate.getDate() == day) && ((dtDate.getMonth() + 1) == month) && (dtDate.getFullYear() == year)){
  		return true;
  	} else {return false;}
}
 	
/* Days In Month */ 	
function daysInMonth(month,year) {
	var dDate = new Date(year, month, 0);
	return dDate.getDate();
} 


/*============================================================================================================
General Standard Function
==============================================================================================================*/
function chgPage(iPageID){

	if (iPageID > 0){		
		document.getElementById('db_page_id').value = iPageID;		
		document.getElementById('Form1').submit(); 
	}	
}

function sortSearchListByColumn(sColumnValue){
	oSortBy = document.getElementById('db_sort_by');
	oSortOrder = document.getElementById('db_sort_order')
	for (var i = 0; i < oSortBy.options.length; i++) {
		if(oSortBy.options[i].value == sColumnValue){
			oSortBy.options[i].selected = true;			
			break;
		}	
	}		
	oSortOrder.selectedIndex = (oSortOrder.selectedIndex == 0) ? 1 : 0	
	document.getElementById('Form1').submit(); 
}

function popupWindow(sTitle) {	
	window.open(sRoot + 'general/popup_window.aspx?sType=' + sTitle, 'popUp', 'width=550,height=425,scrollbars=1');
}

 /*============================================================================================================
Format Date
============================================================================================================*/
function formatDate(sDate){ 
                
            var dtDate = "";
            if (sDate.length > 0)
            {
	            var sDate,sOrgDate,ndate,sep;
                var days,months,year;
                var flag = 0;
                sOrgDate = sDate;
        	    
        	    //Extract Months
                sep = sDate.indexOf("/");
                if (sep == 2)
                {
                    months = sDate.substr(0, 2);                    
                }
                else if (sep == 1)
                {
                    months = parseInt(sDate.substr(0,sep));                    
                }                
                dtDate = assignMonth(months);
                
                //Extract Days
                sDate = sDate.substr(sep + 1);
                var val=sDate.substr(sep + 1); 
                sep = sDate.indexOf("/");        	     
                if(sep != 1 & sep != 2) 
                {
                    dtDate = "";
                }
                else
                {
                    if (sep == 2)
                    {
                        days = sDate.substr(0,2);                    
                    }
                    else if (sep == 1)
                    {
                        days = parseInt(sDate.substr(0,sep));
                    }
                    dtDate = dtDate + assignDays(days);
                }
                
                //Extract Year
                // Date fields  - The desktop has the century rollover amount at 20.  Which means that anything under 20 (00-19) will be prefixed with 20.
                //  Anything 20 and over will be prefixed with 19.
                 if (dtDate != ""){     
                        // below sep value is separator after days
                        year = sDate.substr(sep + 1);          
                        if(year > -1 && year < 10000)
                        {   
                            year = parseInt(year);
                            if ((year.toString()).length == 1) {year = "0" + year;}                            
                            if ((year.toString()).length < 4){                                
                                if(year == 0){ 
                                    year = "2000";
                                } else if (year > 0 && year < 20){                                    
                                    year = "20" + year    
                                } else {
                                    
                                    year = "19" + year    
                                }
                            }                            
                            dtDate = dtDate + year;                            
                        }
                        else
                        {
                            dtDate = "";
                        }
                }    
            }            
            return dtDate;
            
        }


        function assignDays(num)
        {   
            if(num >0 && num < 32)
            {
                if(num < 10 && (num.toString()).substring(0,1) != 0)
                {
                    num = ("0" + num + "/");
                }
                else
                {
                    num = (num + "/");
                }
            }
            else
            {
                return 0;               
            }
            
            return num;
        }

        function assignMonth(num)
        {
        
            if(num >0 && num < 13)
            {
                if(num < 10 && (num.toString()).substring(0,1) != 0)
                {
                    num = ("0" + num + "/");
                }
                else
                {
                    num = (num +"/");
                }
            }
            else
            {
                return 0;                 
            }
             
             return num;
                
        }        
