//######################################################################################
//# Project : Net4App >> Cart
//# Author : Gagandeep Singh
//# Author's Email : gagandeep.s@net4.in
//# Description : This JS file contains Validator functions
//######################################################################################


//validate drop-down list
//					---Parameter Description---
//	ControlID					:					ID of Dropdown List control
//	objErrorLabelID				:					Dropdown List Error Label ID
//	ErrorMessage				:					Error Message
function isSelected(ControlID, objErrorLabelID, ErrorMessage)
{

	if(isMandatory(objErrorLabelID) == true)
	{
		var dropDownList = document.getElementById(ControlID);
		if(dropDownList.disabled == false)
		{
			if (dropDownList.selectedIndex == -1 || dropDownList.selectedIndex == 0)
			{
				SetErrorLabel(objErrorLabelID, ErrorMessage);
				return 1;
			}
			else
			{
				SetErrorLabel(objErrorLabelID,'');
				return 0;
			}
		}
		else
		{
			return 0;
		}
	}
	else
	{
		return 0;
	}
}


//validate checkbox list
//					---Parameter Description---
//	ControlID					:					ID of CheckBox List control
//	objErrorLabelID				:					CheckBox List Error Label ID
//	ErrorMessage				:					Error Message
function isSelectCheckBoxList(ControlID, objErrorLabelID, ErrorMessage)
{

	if(isMandatory(objErrorLabelID) == true)
	{
		var i,j = 0;
		var checkBoxList = document.getElementById(ControlID);
		if(checkBoxList.disabled == false)
		{
			for(i = 0; i < checkBoxList.length; i++)
			{
				if(checkBoxList[i].type == 'checkbox')
				{
					if(checkBoxList[i].checked == true)
					{
						j = j + 1;
					}
				}
			}
			if(j >= 1)
			{
				SetErrorLabel(objErrorLabelID,'');
				return 0;
			}
			else
			{
				SetErrorLabel(objErrorLabelID,ErrorMessage);
				return 1;
			}
		}
		else
		{
			return 0;
		}
	}
	else
	{
		return 0;
	}
}

//validate checkbox list
//					---Parameter Description---
//	ControlID					:					ID of CheckBox control
//	objErrorLabelID				:					CheckBox Error Label ID
//	ErrorMessage				:					Error Message
function isSelectCheckBox(ControlID, objErrorLabelID, ErrorMessage)
{
	
	if(isMandatory(objErrorLabelID) == true)
	{
	
		var j = 0;
		var checkBox = document.getElementById(ControlID);
		
			if(checkBox.disabled == false)
			{
				if(checkBox.type == 'checkbox')
				{
	
					if(checkBox.checked == true)
					{
						j = j + 1;
	
					}
				}
				
				if(j > 0)
				{
					SetErrorLabel(objErrorLabelID,'');
					return 0;
				}
				else
				{
					SetErrorLabel(objErrorLabelID,ErrorMessage);
					return 1;
				}
			}
			else
			{
				return 0;
			}
	}
	else
	{
		return 0;
	}
}
//validate radiobutton list
//						---Parameter Description---
//	ControlID					:					ID of RadioButton List control
//	objErrorLabelID				:					RadioButton List Error Label ID
//	ErrorMessage				:					Error Message
function isSelectRadioButtonList(ControlID, objErrorLabelID, ErrorMessage)
{
	if(isMandatory(objErrorLabelID) == true)
	{
		var i,j = 0;
		var radioButtonList = document.getElementById(ControlID);
		
		if(radioButtonList.disabled == false)
		{
			for(i = 0; i < radioButtonList.length; i++)
			{
				if(radioButtonList[i].type == 'radio')
				{
					if(radioButtonList[i].checked == true)
					{
						j = j + 1;
					}
				}
			}
			if(j >= 1)
			{
				SetErrorLabel(objErrorLabelID,'');
				return 0;
			}
			else
			{
				SetErrorLabel(objErrorLabelID,ErrorMessage);
				return 1;
			}
		}
		else
		{
			return 0;
		}
	}
	else
	{
		return 0;
	}
}


//validate Textbox
//						---Parameter Description---
//	ControlID					:					ID of TextBox control
//	regularExpression			:					Regular Expression
//	objErrorLabelID				:					TextBox Error Label ID
//	ErrorMessage				:					Error Message
function isValidValue(ControlID, regularExpression, objErrorLabelID, ErrorMessage)
{
	
	if(isMandatory(objErrorLabelID) == true)
	{
		
		var textBox = document.getElementById(ControlID);
		if(textBox.disabled == false)
		{
			var strValue = Trim(textBox.value);
			
			reg = new RegExp(regularExpression);
			if(reg.test(strValue) == true)
			{
				SetErrorLabel(objErrorLabelID, '');
				return 0;
			}
			else
			{
				SetErrorLabel(objErrorLabelID,ErrorMessage);
				return 1;
			}
		}
		else
		{
			return 0;
		}
	}
	else
	{
		return 0;
	}
}


//function to check if a particular control in mandatory
//						---Parameter Description---
//	objErrorLabelID					:					ID of Error Label Control
function isMandatory(objErrorLabelID)
{
	var ctrl = document.getElementById(objErrorLabelID);
	if(ctrl != null)
	{
		return true;
	}
	return false;
}


//used to trim left spaces in a string
function LTrim(strTrimStr)
{
	var intTotLen = strTrimStr.length;
    var strWhtSpcs = new String(" \t\n\r");
    var strCpyStr = new String(strTrimStr);

    if (strWhtSpcs.indexOf(strCpyStr.charAt(0)) != -1)
    {
        var intjCtr=0, intiCtr = strCpyStr.length;

        while (intjCtr < intiCtr && strWhtSpcs.indexOf(strCpyStr.charAt(intjCtr)) != -1)
        	intjCtr++;
        strCpyStr = strCpyStr.substring(intjCtr, intTotLen);
    }
    return strCpyStr;
}
        
        
        
//used to trim right spaces in a string
function RTrim(strTrimStr)
{
	var intTotLen = strTrimStr.length;
    var strWhtSpcs = new String(" \t\n\r");
    var strCpyStr = new String(strTrimStr);

    if (strWhtSpcs.indexOf(strCpyStr.charAt(intTotLen-1)) != -1)
    {
        var intiCtr = intTotLen-1;

        while (intiCtr >= 0 && strWhtSpcs.indexOf(strCpyStr.charAt(intiCtr)) != -1)
                        intiCtr--;

        strCpyStr = strCpyStr.substring(0, intiCtr+1);
    }
    return strCpyStr;
}
        
        
//used to trim  spaces in a string
function Trim(pstrTrimStr)
{
    return RTrim(LTrim(pstrTrimStr));
}


function SetErrorLabel(controlID, strError)
{
	var lblError = document.getElementById(controlID);
	lblError.innerText = strError;
}



// Enable DataBase Fields in case of 
// Dynamic Form(uc1103.ascx) for Split Hosting
function EnableSplitDB()
{
	var table = document.getElementById("ID_chk1103_4088");
	
	if(table != null)
	{
		var i, elements,items;
		elements = table.all;
		for(i = 0;i < elements.length; i++)
		{
			var elem = elements[i]; 
			if(elem.type == 'checkbox' && elem.checked == true)
			{
				items = document.getElementById("ID:cmb1103_3998");
				items.disabled = false;
				items = document.getElementById("ID:txt1103_4004");
				items.disabled = false;
				items = document.getElementById("ID:txt1103_4006");
				items.disabled = false;
				items = document.getElementById("ID:txt1103_4008");
				items.disabled = false;
				items = document.getElementById("ID:txt1103_4010");
				items.disabled = false;
			}
			else
			{
				items = document.getElementById("ID:cmb1103_3998");
				RemoveComboItems(items);
				AddComboItems(items, 0, "Select", "Select");
				items.disabled = true;
				SetErrorLabel("ID_lblErr1103_3998", "");
				
				items = document.getElementById("ID:txt1103_4004");
				items.disabled = true;
				SetErrorLabel("ID_lblErr1103_4004", "");
				
				items = document.getElementById("ID:txt1103_4006");
				items.disabled = true;
				SetErrorLabel("ID_lblErr1103_4006", "");
				
				items = document.getElementById("ID:txt1103_4008");
				items.disabled = true;
				SetErrorLabel("ID_lblErr1103_4008", "");
				
				items = document.getElementById("ID:txt1103_4010");
				items.disabled = true;
				SetErrorLabel("ID_lblErr1103_4010", "");
			}		
		}
		
		elem = document.getElementById("ID:cmb1103_3996");
		var cmbDB = document.getElementById("ID:cmb1103_3998");
		if(elem.selectedIndex != 0 && EnableSplitDBValidations() == true)
		{
			if(elem.value == "WIN")
			{
				RemoveComboItems(cmbDB);
				AddComboItems(cmbDB, 0, "Select", "Select");
				AddComboItems(cmbDB, 1, "MS Access", "MS Access");
				AddComboItems(cmbDB, 2, "MS SQL", "MS SQL");
				//AddComboItems(cmbDB, 1, "mySQL", "mySQL");
			}
			else if(elem.value == "LIN")
			{
				RemoveComboItems(cmbDB);
				AddComboItems(cmbDB, 0, "Select", "Select");
				AddComboItems(cmbDB, 1, "mySQL", "mySQL");
				//AddComboItems(cmbDB, 2, "MS SQL", "MS SQL");
			}
		}
		else
		{
			RemoveComboItems(cmbDB);
			AddComboItems(cmbDB, 0, "Select", "Select");
		}
	}
}


// Enable DataBase Fields in case of 
// Dynamic Form(uc1103.ascx) for Split Hosting
function EnableDedicatedDB()
{
	var table = document.getElementById("ID_chk1105_4089");
	
	if(table != null)
	{
		var i, elements,items;
		elements = table.all;

		for(i = 0;i < elements.length; i++)
		{
			var elem = elements[i]; 
			if(elem.type == 'checkbox' && elem.checked == true)
			{
				items = document.getElementById("ID:cmb1105_3999");
				items.disabled = false;
				
				items = document.getElementById("ID:txt1105_4005");
				items.disabled = false;
				
				items = document.getElementById("ID:txt1105_4007");
				items.disabled = false;

				items = document.getElementById("ID:txt1105_4009");
				items.disabled = false;
				
				items = document.getElementById("ID:txt1105_4011");
				items.disabled = false;
			}
			else
			{
				items = document.getElementById("ID:cmb1105_3999");
				RemoveComboItems(items);
				AddComboItems(items, 0, "Select", "Select");
				items.disabled = true;
				SetErrorLabel("ID_lblErr1105_3999", "");
				
				items = document.getElementById("ID:txt1105_4005");
				items.disabled = true;
				SetErrorLabel("ID_lblErr1105_4005", "");
				
				items = document.getElementById("ID:txt1105_4007");
				items.disabled = true;
				SetErrorLabel("ID_lblErr1105_4007", "");
				
				items = document.getElementById("ID:txt1105_4009");
				items.disabled = true;
				SetErrorLabel("ID_lblErr1105_4009", "");
				
				items = document.getElementById("ID:txt1105_4011");
				items.disabled = true;
				SetErrorLabel("ID_lblErr1105_4011", "");
			}		
		}
		
		elem = document.getElementById("ID:cmb1105_3997");
		var cmbDB = document.getElementById("ID:cmb1105_3999");
		if(elem.selectedIndex != 0 && EnableDedicatedDBValidations() == true)
		{
			if(elem.value == "WIN")
			{
				RemoveComboItems(cmbDB);
				AddComboItems(cmbDB, 0, "Select", "Select");
				AddComboItems(cmbDB, 1, "MS Access", "MS Access");
				AddComboItems(cmbDB, 2, "MS SQL", "MS SQL");
				//AddComboItems(cmbDB, 1, "mySQL", "mySQL");
			}
			else if(elem.value == "LIN")
			{
				RemoveComboItems(cmbDB);
				AddComboItems(cmbDB, 0, "Select", "Select");
				AddComboItems(cmbDB, 1, "mySQL", "mySQL");
				//AddComboItems(cmbDB, 2, "MS SQL", "MS SQL");
			}
		}
		else
		{
			RemoveComboItems(cmbDB);
			AddComboItems(cmbDB, 0, "Select", "Select");
		}
	}
}


// Change DataBase Combo on Platform
// Change(i.e. Windows/Linux)in case of 
// Dynamic Form(uc1103.ascx) for Split Hosting
function SetSplitDataBase()
{
	var cmbPlatform, cmbDB, i;
	
	cmbPlatform = document.getElementById("ID:cmb1103_3996");
	
	if(cmbPlatform != null)
	{
		cmbDB = document.getElementById("ID:cmb1103_3998");

		if(EnableSplitDBValidations() == true)
		{		
			if(cmbPlatform.value == "WIN")
			{
				RemoveComboItems(cmbDB);
				AddComboItems(cmbDB, 0, "Select", "Select");
				AddComboItems(cmbDB, 1, "MS Access", "MS Access");
				AddComboItems(cmbDB, 2, "MS SQL", "MS SQL");
			}
			else if(cmbPlatform.value == "LIN")
			{
				RemoveComboItems(cmbDB);
				AddComboItems(cmbDB, 0, "Select", "Select");
				AddComboItems(cmbDB, 1, "mySQL", "mySQL");
			}
			else
			{
				RemoveComboItems(cmbDB);
				AddComboItems(cmbDB, 0, "Select", "Select");
			}
		}
	}
}




// Change DataBase Combo on Platform
// Change(i.e. Windows/Linux)in case of 
// Dynamic Form(uc1105.ascx) for Dedicated Hosting
function SetDedicatedDataBase()
{
	var cmbPlatform, cmbDB, i;
	
	cmbPlatform = document.getElementById("ID:cmb1105_3997");
	
	if(cmbPlatform != null)
	{
		cmbDB = document.getElementById("ID:cmb1105_3999");

		if(EnableDedicatedDBValidations() == true)
		{		
			if(cmbPlatform.value == "WIN")
			{
				RemoveComboItems(cmbDB);
				AddComboItems(cmbDB, 0, "Select", "Select");
				AddComboItems(cmbDB, 1, "MS Access", "MS Access");
				AddComboItems(cmbDB, 2, "MS SQL", "MS SQL");
			}
			else if(cmbPlatform.value == "LIN")
			{
				RemoveComboItems(cmbDB);
				AddComboItems(cmbDB, 0, "Select", "Select");
				AddComboItems(cmbDB, 1, "mySQL", "mySQL");
			}
			else
			{
				RemoveComboItems(cmbDB);
				AddComboItems(cmbDB, 0, "Select", "Select");
			}
		}
	}
}


// function to clear dropdownlist
//						---Parameter Description---
//	cmbDB					:					dropdownlist object
function RemoveComboItems(cmbDB)
{
	for(i = 0; i < cmbDB.options.length; i++)
	{
		cmbDB.remove(i);
	}
}


// function to add items in dropdownlist
//						---Parameter Description---
//	cmbDB					:					dropdownlist object
function AddComboItems(cmbDB, index, strText, strValue)
{
	cmbDB.options[index] = new Option(strText, strValue);
}


// Check if the DataBase Checkbox
// is checkedin case of 
// Dynamic Form(uc1103.ascx) for Split Hosting
function EnableSplitDBValidations()
{
	var table = document.getElementById("ID_chk1103_4088");
	
	if(table != null)
	{
		var i, elements, flag, items;
		
		elements = table.all;
		
		for(i = 0;i < elements.length; i++)
		{
			var elem = elements[i]; 
			if((elem.type == 'checkbox') && (elem.checked == true))
			{
				flag = true;
			}
			else
			{
				flag = false;
			}		
		}
		return flag;
	}
	
}


// Check if the DataBase Checkbox
// is checkedin case of 
// Dynamic Form(uc1103.ascx) for Split Hosting
function EnableDedicatedDBValidations()
{
	var table = document.getElementById("ID_chk1105_4089");
	
	if(table != null)
	{
		var i, elements, flag, items;
		
		elements = table.all;
		
		for(i = 0;i < elements.length; i++)
		{
			var elem = elements[i]; 
			if((elem.type == 'checkbox') && (elem.checked == true))
			{
				flag = true;
			}
			else
			{
				flag = false;
			}		
		}
		return flag;
	}
	
}