var myCollection = window.document.all;

//Check for invalid chars.
function hasInvalidChars(obj) {
	for (var i = 0; i < obj.length; i++) {
		if (isInvalidChar(obj.charAt(i)))
			return true;
	}
	return false;
}

//Check for numbers only.
function isNumbers(obj) {
	for (var i = 0; i < obj.length; i++) {
		if (!isNumber(obj.charAt(i)))
			return false;
	}
	return true;
}

//Check if null or empty.
function isNullOrEmpty(obj) {
	return (obj == null) || (obj == "");
}	

//Display error and set focus on given object.
function displayErorr(errMsg, focusControl) {
	alert(errMsg);
	focusControl.focus();
	return false;
} 

// Phone Number
function isPhoneNumFull(phoneNum, phonePrefixNum)
{
	if (phonePrefixNum && phoneNum)
	{
		var phonePrefixValue = parseInt(phonePrefixNum.value, 10);
		if ((phoneNum.value.length > 0) && (phonePrefixValue > 0))
		{
			return isNumbers(phoneNum.value);		
		}
	}
	
	return false;
}

//Check for valid email.
function isValidEmail(strValue)
{
	var strValue = new String (strValue);
	
	// check if '@' is exist
	arrValue = strValue.split("@");
		
	if (arrValue.length != 2)
	{
		return false;
	}
	
	var strLeftSection = arrValue[0];
	var strRightSection = arrValue[1];
	
	if (strLeftSection == "")
	{
		return false;
	}	
			
	if (strRightSection == "")
	{
		return false;	
	}
	
	// check if there is one dot or two dots in the second section
	arrRightSection = strRightSection.split(".");
	if (arrRightSection.length != 2 && arrRightSection.length != 3)
	{
		return false;	
	}	
			
	// check there 	are no two dots one beside other
	for (var i=0 ; i<arrRightSection.length ; i++)
	{
		if (arrRightSection[i] == "")
		{
			return false;
		}
	}
	
	// check all chars are valid
	for (var i=0 ; i<arrNotValidEMailChars.length ; i++)
	{
		if (strValue.indexOf(arrNotValidEMailChars[i]) > -1)
		{
			return false;
		}
	}		
	
	if (strValue.indexOf('"') > -1)
	{
		return false;
	}
	
	for (var i=0 ; i<strValue.length ; i++)
	{
		// 1488 = 'à', 1514 = 'ú', 
		
		var ch = strValue.charAt(i);
		if (ch.charCodeAt(0) >= 1488 && ch.charCodeAt(0) <= 1514)
		{
			return false
		}
	}
	
	return true;	
}

//Check for allowed file extentions.
function isAllowedExtenstion(fileName) {
	var indexOfExt = fileName.lastIndexOf(".");
	var fileExt = fileName.substring(indexOfExt);
	
	for (var i = 0; i < arrAllowedExtentions.length; i++) {
		if (fileExt.toLowerCase() == arrAllowedExtentions[i])
			return true;
	}
	
	return false;
}



/************* Service functions *************/
var arrAllowedExtentions = [".doc", ".txt"];
var arrInvalidChars	= ["-", " ", "'"];
var arrNotValidEMailChars = ["/",":",";"," ","^","$","(",")","[","]","{","}","+","=","|","\\","*","~","`","'","#","!",",","?"];

function isInvalidChar(obj) {
	for (var i = 0; i < arrInvalidChars.length; i++) {
		if (obj == arrInvalidChars[i])
			return true;
	}
	return false;
}

function isNumber(obj) {
	return (obj >= 0) && (obj <= 9);					
}

function checkSmsNumber()
{
			
	var inputs = document.getElementsByTagName("input");	
	for (i = 0; i < inputs.length; i++)
	{
		if (inputs[i].id.toString().indexOf("p_Remind1") > -1)		
		{						
			if (inputs[i].checked==true)
			{
				return true;							
			}
		}				
	}
	return false;				
}

function ShowDivSms()
{
	var objDiv;
	
	var divs = document.getElementsByTagName("DIV");	
	
	for (i = 0; i < divs.length; i++)
	{
		if(divs[i].id != "")
		{
			if (divs[i].id.toString().indexOf("divSms") > -1)		
			{		
			objDiv = divs[i];
			break;
			}			
		}		
	}
	if(objDiv == "undefined")
		return;
		
	if(checkSmsNumber())
	{		
		objDiv.style.display = "block";
	}
	else
	{
		objDiv.style.display = "none";
	}
	
}

function IsValidID(idnum) {

	try
	{
		if (isNaN(idnum) || parseInt(idnum, 10) == 0)
		{
			return false;
		}
					
		while(idnum.length<9){idnum="0"+idnum;}
		
		var idnum1				= idnum.substr(0,1)*1;
		var idnum2				= idnum.substr(1,1)*2;
		var idnum3				= idnum.substr(2,1)*1;
		var idnum4				= idnum.substr(3,1)*2;
		var idnum5				= idnum.substr(4,1)*1;
		var idnum6				= idnum.substr(5,1)*2;
		var idnum7				= idnum.substr(6,1)*1;
		var idnum8				= idnum.substr(7,1)*2;
		var idnum9				= idnum.substr(8,1)*1;

		if (idnum1>9) idnum1	= (idnum1%10) + 1;
		if (idnum2>9) idnum2	= (idnum2%10) + 1;
		if (idnum3>9) idnum3	= (idnum3%10) + 1;
		if (idnum4>9) idnum4	= (idnum4%10) + 1;
		if (idnum5>9) idnum5	= (idnum5%10) + 1;
		if (idnum6>9) idnum6	= (idnum6%10) + 1;
		if (idnum7>9) idnum7	= (idnum7%10) + 1;
		if (idnum8>9) idnum8	= (idnum8%10) + 1;
		if (idnum9>9) idnum9	= (idnum9%10) + 1;

		var sumval				= idnum1+idnum2+idnum3+idnum4+idnum5+idnum6+idnum7+idnum8+idnum9;
		sumval					= sumval%10;
				
		if(sumval>0)			return false;
		else					return true;
	}
	catch(e)
	{
		return false;
		
	}
	
	

}
/////////********************************************************************////////////////

// 1. Check required fileds:
//    *First name, *Last name, *City, *street, *Phone, ,*Email,  *ID, *Pasword, *Confirm

// 2. Validation:
//    Phone, Zip, Email, ID, Passwod




var Prefix_ID = Ctrl_Prefix + "_";
var retVal;      
var ErrMessage;



function send(obj){	
	var ckRegulations	= document.getElementById(Prefix_ID + "CkDisplayRegulations");
	
	if (Field_Empty("tbFname","input")) {
		alert(REG.EMPTY_FIRST_NAME);
		return;
	}	
	
	if (Field_Empty("tbLname","input")) {
		alert(REG.EMPTY_LAST_NAME);
		return;
	}
			 
	if (tbSettelment.value == "") {
		//alert(REG.EMPTY_CITY);
		//return;
	}
	else 
	{
		var cityHidden = document.getElementById(Prefix_ID + "txtCity");
		cityHidden.value = tbSettelment.value;
	}
	
	    
	if (tbStreet.value == "") {
		//alert (REG.EMPTY_STREET);
		//return;
	}
	else 
	{
		var streetHidden = document.getElementById(Prefix_ID + "txtStreet");
		streetHidden.value = tbStreet.value;
	}
	
	// Zip	
	var zipVal = GetCtrlValue("tbZip");
	if (zipVal.value != "" && zipVal.length > 0) 
	{		
		if (zipVal.length < 5 || !IsNumber(zipVal))
		{			
			alert (REG.INVALID_ZIP_LENGTH);
			return;
		}
	}
	
	// Phone 1
	if (Field_Empty("tbPhone1","input")) {
		alert(REG.EMPTY_PHONE);
		return;
	}
	else 
	{
		var tbPhone1 = GetCtrl("tbPhone1");
		var tbPhone1Value = tbPhone1.value;
		var ddlPhone1 = GetCtrl("ddlPrefix1");		
		if (tbPhone1.maxLength == 7)   // interface language = hebrew
		{
			if (tbPhone1Value.length == 7)
			{
				if (!isPhoneNumFull(tbPhone1, ddlPhone1))
				{
					alert(REG.INVALID_PHONE_1);
					return;
				}
			}
			else {
				alert (REG.INVALID_PHONE_LENGTH);
				return;
			}
		}
	}
	
	// Phone 2
	if (!Field_Empty("tbPhone2", "input"))
	{
		var tbPhone2 = GetCtrl("tbPhone2");
		var ddlPhone2 = GetCtrl("ddlPrefix2");
		if (tbPhone1.maxLength == 7)   // interface language = hebrew
		{
			if (tbPhone2.value.length == 7)
			{
				if (!isPhoneNumFull(tbPhone2, ddlPhone2))
				{
					alert(REG.INVALID_PHONE_2);
					return;
				}
			}
			else 
			{
				alert (REG.INVALID_PHONE_LENGTH);
				return;
			}
		}
	}	
	
	// Email
	if (Field_Empty("tbMail","input")) {
		alert(REG.EMPTY_MAIL);
		return;		
	}
	else if (!IsEmail(GetCtrlValue("tbMail"))){
		alert(REG.INVALID_MAIL);
		return;
	}
	
	// ID
	if (Field_Empty("tbID","input")) {
		alert(REG.EMPTY_ID);
		return;
	}
	else {	
		var id = GetCtrlValue("tbID");
		
		if (!IsNumber(id) || !IsValidID(id) || id.length > 9){
			alert(REG.INVALID_ID);
			return;
		}
	}		
	
	// Password
	var password = GetCtrlValue("tbPassword");
	var confirm  = GetCtrlValue("tbConfirm");
	
	if(password == "") {
		alert(REG.EMPTY_PASSWORD);
		return;
	}
	else {
		if (password.length < 5 || password.length > 12) {
			alert(REG.INVALID_PASSWORD);
			return;
		}
		else {
			if (confirm == "") {
				alert(REG.EMPTY_CONFIRM);	
				return;
			}
			else {
				if (confirm.length < 5 || confirm.length > 12) {
					alert(REG.INVALID_CONFIRM);	
					return;
				}
				else {
					if(password != confirm) {
						alert(REG.INVALID_PASSWORD_EQUALS);
						return;
					}
				}
			}
		}
	}
	if(ckRegulations.status==false)
	{
		alert(REG.EMPTY_AGREE_TO_REGULATIONS);
		return;
	}
	
	
	
	var btn	= document.getElementById(Prefix_ID + obj);
	btn.click();					
}


// Check if crtl value no empty
function Field_Empty(cntl_ID, tag) {	

	var ctrl	= document.getElementById(Prefix_ID + cntl_ID);
	var compVal = (tag == "input") ? "" : "0";
	
	if(ctrl.value == compVal) {				
		return			true;			
	}
	
	return false; 
}

/**functions of EventItem.aspx**/
function isValidForm(mode)
{
		var selects = document.getElementsByTagName("select");		
		for (i = 0; i < selects.length; i++)
		{
			if (selects[i].id.toString().indexOf("SelectDay") > -1)
			{						
				SelectDay = selects[i];					
			}
			if (selects[i].id.toString().indexOf("SelectMonth") > -1)
			{						
				SelectMonth = selects[i];					
			}
			if (selects[i].id.toString().indexOf("SelectYear") > -1)
			{						
				SelectYear = selects[i];					
			}
			if (selects[i].id.toString().indexOf("SelectEndDay") > -1)
			{						
				SelectEndDay = selects[i];					
			}
			if (selects[i].id.toString().indexOf("SelectEndMonth") > -1)
			{						
				SelectEndMonth = selects[i];					
			}
			if (selects[i].id.toString().indexOf("SelectEndYear") > -1)
			{						
				SelectEndYear = selects[i];					
			}
		}	
		if(SelectDay.selectedIndex == -1)
		{
			return displayErorr(errSelectDayEmpty, SelectDay);//not get focus because of selectedIndex == -1
		}
		if(SelectEndDay.selectedIndex == -1)
		{
			return displayErorr(errSelectEndDayEmpty, SelectEndDay);//not get focus because of selectedIndex == -1
		}	
		
		
		//check if the date in the past//
		if(mode=="Insert")
		{
			var startDate=new Date()
			startDate.setFullYear( parseInt(SelectYear.value, 10) , parseInt(SelectMonth.value, 10)-1 ,parseInt(SelectDay.value, 10) )	//month start from 0				
			
			var today = new Date()				
			if (startDate < today)
			{
				alert(errPastDate);
				return false;
			}
		}

		//check if end date older than start date//
		if(SelectEndYear.selectedIndex>0 && SelectEndMonth.selectedIndex>0 && SelectEndDay.selectedIndex>0)
		{		
			var endDate=new Date()
			endDate.setFullYear(parseInt(SelectEndYear.value) , parseInt(SelectEndMonth.value)-1 ,parseInt(SelectEndDay.value) ) //month start from 0				
			if (endDate < startDate)
			{
				alert(errEndDateOlderThanDate);
				return false;
			}
		}
				
		
		var inputs = document.getElementsByTagName("input");		
		for (i = 0; i < inputs.length; i++)
		{
			if (inputs[i].id.toString().indexOf("txtEventName") > -1)
			{						
				txtEventName = inputs[i];					
				break;																												
			}
		}														

		if (isNullOrEmpty(trim(txtEventName.value)))
		{
			return displayErorr(errEventNameEmpty, txtEventName);
		}
				
		
		for (i = 0; i < selects.length; i++)
		{
			if (selects[i].id.toString().indexOf("ddlTypeEvent") > -1)
			{						
				SelectTypeEvent = selects[i];					
				break;																												
			}
		}				
		if (SelectTypeEvent.selectedIndex == 0)
		{
			return displayErorr(errEventTypeEmpty, SelectTypeEvent);
		}		


		if(checkSmsNumber())		
		{					
					
			//look for txtCELLULAR (there is prefix to the id)
			for (i = 0; i < inputs.length; i++)
			{
				if (inputs[i].id.toString().indexOf("txtCELLULAR") > -1)
				{						
					objCELLULAR = inputs[i];					
					break;																												
				}
			}														
			if(objCELLULAR.value.length < 7)						
					return displayErorr(errTxtCellularEmpty, objCELLULAR);
								
								
			//look for textareaSmsContent(there is prefix to the id)
			var textareas = document.getElementsByTagName("TEXTAREA");		
			for (i = 0; i < textareas.length; i++)
			{
				if (textareas[i].id.toString().indexOf("textareaSmsContent") > -1)
				{						
					objSmsContent = textareas[i];					
					break;																												
				}
			}			
			if (isNullOrEmpty(objSmsContent.value))																	
					return displayErorr(errTextareaSmsContentEmpty, objSmsContent);		
		}		
				
		return true;
}
/**functions of EventItem.aspx**/


function checkNumOfChars(obj, msg, maxlength)
{
	if (this)
	{
		var objValue = obj.value;
		if (objValue.length > maxlength)
		{
			alert(msg);	
			this.focus();
			return;
		}		
	}
	
	checkout();
}