var mailing_reg_clientID = "";
var mailing_rem_clientID = "";
var mailing_log_clientID = "";
var mailing_log_remind_clientID = "";

function mailing_overImage(obj)
{
	obj.src = eval(obj.name + "_On.src");
	obj.style.cursor = 'hand';
}

function mailing_outImage(obj)
{
	obj.src = eval(obj.name + "_Off.src");
}

document.onkeyup = function(event) 
{
	if ( typeof event == "undefined" ) event = window.event

    var wkey = event.keyCode
    if ( document.layers ) wkey = event.which



    if(wkey==13)
    {
		if (mailing_reg_clientID == "MembersMailingListRegist")
		{
			imgRegist = document.getElementById(mailing_reg_clientID + '_imgRegist');
			 document.forms[0].submit();
		}
	
		if (mailing_rem_clientID == "MembersMailingListRemove")
		{
				imgConfirm = document.getElementById(mailing_rem_clientID + '_imgConfirm');
				document.forms[0].submit();
		}
	
		if (mailing_log_clientID == "MembersMailingListLogin")
		{
			imgEnter =document.getElementById(mailing_log_clientID + '_imgEnter');
			document.forms[0].submit();
		}	
	
		if (mailing_log_remind_clientID == "MembersMailingListLoginRemind")
		{
			imgSend = document.getElementById(mailing_log_remind_clientID + '_imgSend');
			document.forms[0].submit();
		}
	}
}

////////////////////
// REGIST
////////////////////

// init
function mailing_reg_init()
{
	if (window.init != null)
	{
		init();
	}
	try{	
	    var objEmail = document.getElementById(mailing_reg_clientID + '_txtEmail');
	    objEmail.focus();
    	
	    // check subjects
	    var arrCheckSubjectsList = document.getElementById(mailing_reg_clientID + '_checkSubjectsList').value.split(' ');
    	
	    var objCheckSubjectsList = new Object();
	    for (var i=0 ; i<arrCheckSubjectsList.length ; i++)
	    {
		    objCheckSubjectsList[arrCheckSubjectsList[i]] = "on";
	    }	
    	
	    var i = 0;
	    while (objCheckSubjects =  document.getElementById(mailing_reg_clientID + '_repeaterSubjects__ctl' + (i++) + '_checkSubject'))	
	    {
		    if (objCheckSubjectsList[objCheckSubjects.value] == "on")
		    {
			    objCheckSubjects.checked = true;
		    }
	    }
	}catch(e){}
}
		
// check form
function mailing_reg_checkForm(obj, isKnownMember)
{
	isKnownMember = isKnownMember.toLowerCase();

	// get form content
	var objEmail = document.getElementById(mailing_reg_clientID + '_txtEmail');
	var objUserName = document.getElementById(mailing_reg_clientID + '_txtUserName');
	var objPassword = document.getElementById(mailing_reg_clientID + '_txtPassword');
	var objConfirmPassword = document.getElementById(mailing_reg_clientID + '_txtConfirmPassword');
	var objFName = document.getElementById(mailing_reg_clientID + '_txtFName');
	var objLName =document.getElementById(mailing_reg_clientID + '_txtLName');
	var objCity = document.getElementById(mailing_reg_clientID + '_selectCity');
	var objStreet = document.getElementById(mailing_reg_clientID + '_txtStreet');
	var objHomeNo = document.getElementById(mailing_reg_clientID + '_txtHomeNo');
	var objPhone = document.getElementById(mailing_reg_clientID + '_txtPhone');
	var objPhonePrefix = document.getElementById(mailing_reg_clientID + '_selectPhonePrefix');
	var objBirthDateDay = document.getElementById(mailing_reg_clientID + '_selectBirthDateDay');
	var objBirthDateMonth = document.getElementById(mailing_reg_clientID + '_selectBirthDateMonth');
	var objBirthDateYear = document.getElementById(mailing_reg_clientID + '_selectBirthDateYear');
	var objCheckAgree =  document.getElementById(mailing_reg_clientID + '_checkAgree');
	var objCheckSubjectsList = document.getElementById(mailing_reg_clientID + '_checkSubjectsList');
	var objClientMessage = document.getElementById(mailing_reg_clientID + '_divClientMessage');
	var objBtnRegist = document.getElementById(mailing_reg_clientID + '_btnRegist');
	
	// check email
	if (mailing_isEmpty(objEmail.value) == true)
	{
		objClientMessage.innerHTML = arrMessages['email_empty'];
		self.scrollTo(0,0);
		objEmail.focus();
		return;
	}
	
	if (mailing_validEmail(objEmail.value) == false)
	{
		objClientMessage.innerHTML = arrMessages['email_error'];
		self.scrollTo(0,0);
		objEmail.focus();
		return;
	}
	

	// check username
	if (mailing_isEmpty(objUserName.value) == true)
	{
		objClientMessage.innerHTML = arrMessages['username_empty'];
		self.scrollTo(0,0);
		objUserName.focus();
		return;
	}
	
	if (mailing_validUserName(objUserName.value) == false)
	{
		objClientMessage.innerHTML = arrMessages['username_error'];
		self.scrollTo(0,0);
		objUserName.focus();
		return;
	}
	
	
	// check password
	if (isKnownMember == "false" && mailing_isEmpty(objPassword.value) == true)
	{
		objClientMessage.innerHTML = arrMessages['password_empty'];
		self.scrollTo(0,0);
		objPassword.focus();
		return;
	}
	
	if (isKnownMember == "false" && mailing_validPassword(objPassword.value) == false)
	{
		objClientMessage.innerHTML = arrMessages['password_error'];
		self.scrollTo(0,0);
		objPassword.value = "";
		objPassword.focus();
		return;
	}
	
	
	// check confirm password
	if (isKnownMember == "false" && mailing_isEmpty(objConfirmPassword.value) == true)
	{
		objClientMessage.innerHTML = arrMessages['confirm_password_empty'];
		self.scrollTo(0,0);
		objConfirmPassword.focus();
		return;
	}
	
	if (mailing_validConfirmPassword(objPassword.value, objConfirmPassword.value, isKnownMember) == false)
	{
		objClientMessage.innerHTML = arrMessages['confirm_password_error'];
		self.scrollTo(0,0);
		objConfirmPassword.value = "";
		objPassword.value = "";
		objPassword.focus();
		return;
	}
		
		
	// check first name
	if (mailing_isEmpty(objFName.value) == true)
	{
		objClientMessage.innerHTML = arrMessages['first_name_empty'];	
		self.scrollTo(0,0);
		objFName.focus();
		return;
	}
	
	if (mailing_validName(objFName.value) == false)
	{
		objClientMessage.innerHTML = arrMessages['first_name_error'];	
		self.scrollTo(0,0);
		objFName.focus();
		return;
	}
		
	
	// check last name
	if (mailing_isEmpty(objLName.value) == true)
	{
		objClientMessage.innerHTML = arrMessages['last_name_empty'];	
		self.scrollTo(0,0);
		objLName.focus();
		return;
	}
	
	if (mailing_validName(objLName.value) == false)
	{
		objClientMessage.innerHTML = arrMessages['last_name_error'];	
		self.scrollTo(0,0);
		objLName.focus();
		return;
	}
	
	
	// check city
	if (mailing_validSelect(objCity.value) == false)
	{
		objClientMessage.innerHTML = arrMessages['city_empty'];	
		self.scrollTo(0,0);
		objCity.focus();
		return;
	}
		
	
	if (mailing_validName(objStreet.value) == false)
	{
		objClientMessage.innerHTML = arrMessages['street_error'];	
		self.scrollTo(0,0);
		objStreet.focus();
		return;
	}
	
		
	if (mailing_validName(objHomeNo.value) == false)
	{
		objClientMessage.innerHTML = arrMessages['home_no_error'];	
		self.scrollTo(0,0);
		objHomeNo.focus();
		return;
	}

	// check phone
	/*
	if (mailing_isEmpty(objPhonePrefix.value) == true)
	{
		objClientMessage.innerText = arrMessages['phone_prefix_empty'];	
		self.scrollTo(0,0);
		objPhonePrefix.focus();
		return;
	}
		
	if (mailing_isEmpty(objPhone.value) == true)
	{
		objClientMessage.innerText = arrMessages['phone_empty'];	
		self.scrollTo(0,0);
		objPhone.focus();
		return;
	}
	
	
	if (!mailing_isEmpty(objPhonePrefix.value))
	{
		if (mailing_validPhonePrefix(objPhonePrefix.value) == false)
		{
			objClientMessage.innerText = arrMessages['phone_prefix_error'];	
			self.scrollTo(0,0);
			objPhonePrefix.focus();
			return;
		}
	}
	
	*/
	
	if (!mailing_isEmpty(objPhone.value))
	{
		if (mailing_validPhone(objPhone.value) == false)
		{
			objClientMessage.innerHTML = arrMessages['phone_error'];	
			self.scrollTo(0,0);
			objPhone.focus();
			return;
		}
	}
	
	// check birth date
	if (mailing_validBirthDate(parseInt(objBirthDateDay.value), parseInt(objBirthDateMonth.value)-1, parseInt(objBirthDateYear.value)) == false)
	{
		objClientMessage.innerHTML = arrMessages['birth_date_error'];	
		self.scrollTo(0,0);
		objBirthDateDay.focus();
		return;
	}
	try{
	// check subjects	
	objCheckSubjectsList.innerHTML = mailing_getSubjectsList(mailing_reg_clientID);	
	
	}catch(e){}
	
	if (mailing_notAgree(objCheckSubjectsList.value, objCheckAgree.checked) == true)
	{
		objClientMessage.innerHTML = arrMessages['subjects_empty'];
		self.scrollTo(0,0);
		return;
	}
	document.forms[0].submit();
}



////////////////////
// REMOVE
////////////////////

// init
function mailing_rem_init()
{
	if (window.init != null)
	{
		init();
	}
	try{
	    var objEmail = document.getElementById(mailing_rem_clientID + '_txtEmail');
	    objEmail.focus();
	}catch(e){}    
}
		
// check form
function mailing_rem_checkForm(obj)
{
 
	// get form content
	var objEmail = document.getElementById(mailing_rem_clientID + '_txtEmail');
	var objClientMessage = document.getElementById(mailing_rem_clientID + '_tdClientMessage');
	var objBtnConfirm = document.getElementById(mailing_rem_clientID + '_btnConfirm');
	
	
	
	// check email
	if (mailing_isEmpty(objEmail.value) == true)
	{
		objClientMessage.innerHTML = arrMessages['email_empty'];
		
		objEmail.focus();
		return;
	}
	
	if (mailing_validEmail(objEmail.value) == false)
	{
		objClientMessage.innerHTML = arrMessages['email_error'];
		
		objEmail.focus();
		return;
	}
		
	document.forms[0].submit();
}




////////////////////
// LOGIN
////////////////////

// init
function mailing_log_init()
{
	if (window.init != null)
	{
		init();
	}
	try{
	    var objUserName = document.getElementById(mailing_log_clientID + '_txtUserName');
	    objUserName.focus();
	}catch(e){}
}
		
// check form
function mailing_log_checkForm(obj)
{
	
	// get form content
	var objUserName = document.getElementById(mailing_log_clientID + '_txtUserName');
	var objPassword = document.getElementById(mailing_log_clientID + '_txtPassword');
	var objClientMessage = document.getElementById(mailing_log_clientID + '_divClientMessage');
	var objBtnEnter = document.getElementById(mailing_log_clientID + '_btnEnter');
	
	// check username
	if (mailing_isEmpty(objUserName.value) == true)
	{
		objClientMessage.innerHTML = arrMessages['username_empty'];
		self.scrollTo(0,0);
		objUserName.focus();
		return;
	}
	
	if (mailing_validUserName(objUserName.value) == false)
	{
		objClientMessage.innerHTML = arrMessages['username_error'];
		self.scrollTo(0,0);
		objUserName.focus();
		return;
	}
	
	
	// check password
	if (mailing_isEmpty(objPassword.value) == true)
	{
		objClientMessage.innerHTML = arrMessages['password_empty'];
		self.scrollTo(0,0);
		objPassword.focus();
		return;
	}
	
	if (mailing_validPassword(objPassword.value) == false)
	{
		objClientMessage.innerHTML = arrMessages['password_error'];
		self.scrollTo(0,0);
		objPassword.value = "";
		objPassword.focus();
		return;
	}
		
	document.forms[0].submit();
}



////////////////////
// LOGIN - REMIND
////////////////////

// init
function mailing_log_remind_init()
{
	if (window.init != null)
	{
		init();
	}
	try{
	    var objEmail = document.getElementById(mailing_log_remind_clientID + '_txtEmail');
	    objEmail.focus();
	 }catch(e){}
}
		
// check form
function mailing_log_remind_checkForm(obj)
{
	// get form content
	var objEmail = document.getElementById(mailing_log_remind_clientID + '_txtEmail');
	
	var objClientMessage = document.getElementById(mailing_log_remind_clientID + '_divClientMessage');
	var objBtnSend = document.getElementById(mailing_log_remind_clientID + '_btnSend');
	
	// check email
	if (mailing_isEmpty(objEmail.value) == true)
	{
		objClientMessage.innerHTML = arrMessages['email_empty'];
		self.scrollTo(0,0);
		objEmail.focus();
		return;
	}
	
	if (mailing_validEmail(objEmail.value) == false)
	{
		objClientMessage.innerHTML = arrMessages['email_error'];
		self.scrollTo(0,0);
		objEmail.focus();
		return;
	}
		
	document.forms[0].submit();
}

////////////////////
// GENEAL
////////////////////

function mailing_isEmpty(strValue)
{
	// if the field value is empty, return true (error)
	if (strValue == "")
	{
		return true;
	}
	
	return false;	
		
}

var arrValidNameChars = ["'","-", " "];
function mailing_validName(strValue)
{
	for (var i=0 ; i<strValue.length ; i++)
	{
		var ch = strValue.charAt(i);
		
		if ( isBigLetter(ch) == false  && isSmallLetter(ch) == false && isHebrewLetter(ch) == false && isNumber(ch) == false && isValidChar(ch) == false)
		{
			return false;
		}
	}
	
	return true;
	
	function isBigLetter(ch)
	{
		return (ch >= 'A' && ch <= 'Z')
	}
	
	function isSmallLetter(ch)
	{
		return (ch >= 'a' && ch <= 'z')
	}
	
	function isHebrewLetter(ch)
	{
		return (ch.charCodeAt(0) >= 1488 && ch.charCodeAt(0) <= 1514)
	}

	function isNumber(ch)
	{
		return (ch >= '0' && ch <= '9')
	}
	
	
	function isValidChar(ch)
	{
		for (var i=0 ; i<arrValidNameChars.length ; i++)
		{
			if (ch == arrValidNameChars[i])
			{
				return true;
			}
		}
		
		return false;
	}
}

function mailing_validEmail(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
	var notValidChars  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
	if (!notValidChars.test(strValue))
	{
		return false;
	}
	
	return true;	
}

function mailing_validUserName(strValue)
{
	var notValidChars=/^([a-z]|[A-Z]|\d)+$/;
	if(!notValidChars.test(strValue) || String(strValue).length<4 || String(strValue).length>8)
	{
		return false
	}
			
	return true;
}

function mailing_validPassword(strValue)
{
	return mailing_validUserName(strValue);
}

function mailing_validConfirmPassword(strValue1, strValue2, isKnownMember)
{
	if (isKnownMember == "true" && strValue1 == "" && strValue2 == "")
	{
		return true;
	}
	
	if (strValue1 != strValue2)
	{
		return false;
	}
	
	return true;
}

function mailing_validSelect(strValue)
{
	if (strValue == "" || strValue == "0")
	{
		return false;
	}
	
	return true;
}

function mailing_validPhonePrefix(strValue)
{
	if (strValue.length < 2 || strValue.length > 3)
	{
		return false;
	}
	
	if (isNaN(strValue))
	{
		return false;
	}
	
	return true;
}

function mailing_validPhone(strValue)
{
	if (strValue.length != 7)
	{
		return false;
	}
	
	if (isNaN(strValue))
	{
		return false;
	}
	
	return true;
}

function mailing_validBirthDate(nDay, nMonth, nYear)
{
	var now = new Date();
	var today = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0);
	var birthDate = new Date(nYear, nMonth, nDay);
	
	if (today <= birthDate)
	{
		return false;
	}	
	
	return true;
}

function mailing_getSubjectsList(mailing_reg_clientID)
{
	var buf = "";
	var objCheckSubjects;
	
	var i = 0;
	while (objCheckSubjects =  document.getElementById(mailing_reg_clientID + '_repeaterSubjects__ctl' + (i++) + '_checkSubject'))	
	{
		if (String(objCheckSubjects.checked).toUpperCase() == "TRUE")
		{
			buf += " " + String(objCheckSubjects.value);
		}
	}
	
	return buf.replace(" ", "");
}

function mailing_notAgree(strCheckSubjectsList, isCheckAgree)
{
	if (String(isCheckAgree).toUpperCase() == "FALSE")
	{
		if (strCheckSubjectsList != "")
		{
			return true;
		}
	}
	
	return false;
}

// change date selection
function mailing_changeDay(obj)
{
	var objDay = obj;
	var objMonth = document.getElementById(obj.name.replace("Day", "Month"));
	var objYear = document.getElementById(obj.name.replace("Day", "Year"));
	
	var nDay = parseInt(objDay.value);
	var nMonth = parseInt(objMonth.value)-1;
	var nYear = parseInt(objYear.value);

	
}

function mailing_changeMonth(obj)
{
	var objMonth = obj;
	var objDay = document.getElementById(obj.name.replace("Month", "Day"));
	var objYear = document.getElementById(obj.name.replace("Month", "Year"));
	
	var nDay = parseInt(objDay.value);
	var nMonth = parseInt(objMonth.value)-1;
	var nYear = parseInt(objYear.value);
	
	var nDaysInMonth = mailing_getDaysInMonth(nYear, nMonth);
	
	if (objDay.length != nDaysInMonth)
	{
		while(objDay.length)
		{
			objDay.options[objDay.length-1] = null;
		}	
		
		for	(var i=1 ; i<=nDaysInMonth ; i++)
		{
			objDay.options[objDay.length] = new Option(i, i);
		}
		
		// eliran: if selected day exists in the new selected month so use it.
		if (nDay <= nDaysInMonth)
		{
			objDay.value	=	nDay;
		}
							
	}
}

function mailing_changeYear(obj)
{
	var objYear = obj;
	var objMonth = document.getElementById(obj.id.replace("Year", "Month"));
	var objDay = document.getElementById(obj.id.replace("Year", "Day"));

	var nDay = parseInt(objDay.value);
	var nMonth = parseInt(objMonth.value)-1;
	var nYear = parseInt(objYear.value);
	
	var nDaysInMonth = mailing_getDaysInMonth(nYear, nMonth);
	
	if (objDay.length != nDaysInMonth)
	{
		while(objDay.length)
		{
			objDay.options[objDay.length-1] = null;
		}	
		
		for	(var i=1 ; i<=nDaysInMonth ; i++)
		{
			objDay.options[objDay.length] = new Option(i, i);
		}					
	}
}

function mailing_getDaysInMonth(nYear, nMonth)
{	
	if (nMonth == 1 && nYear%400==0)
	{
		return 28;
	}
	
	var date1 = new Date(nYear, nMonth+1, 1);
	var date2 = new Date(nYear, nMonth, 1);
	
	return ((date1-date2)/86400000);
}	