// ****************************************************************************
//                           General Functions
// ****************************************************************************

// Create XMLhttp Object on ClientSide
var getTransferObject = function(){    return null;    };
if(window.ActiveXObject){
	// Check if the browser has support for ActiveXObject (IE Usually) 
	try{ 
		// Check for the new version of XMLHttp compoment 
		var x= new ActiveXObject("MSXML2.XMLHTTP"); 
		getTransferObject = function(){ return new ActiveXObject("MSXML2.XMLHTTP"); }
		delete x;
	   }catch(_ex){ 
			try{ // Check for late version of XMLHTTP compoment 
				var x = new ActiveXObject("Microsoft.XMLHTTP"); 
				getTransferObject = function(){ return new ActiveXObject("Microsoft.XMLHTTP"); }
				delete x;
			}catch(ex){
				// Otherwise the version of IE is too old 
			} 
		} 
	}else if(window.XMLHttpRequest){
		// XMLHttpRequest object supported by Opera, Firefox and Safari - may too in IE 7. 
		getTransferObject = function(){ return new XMLHttpRequest(); }
	}

function writeSystemMessage(message)
{
	document.getElementById ("systemMessage").innerHTML = message;
}


var screenOverlay_shown = false;
function screenOverlay_show()
{

	if (!screenOverlay_shown)
	{
		var ScrollTop = document.body.scrollHeight;
		if (ScrollTop == 0)
		{
			if (window.pageYOffset)
				ScrollTop = window.pageYOffset;
			else
				ScrollTop = (document.body.parentElement) ? document.body.parentElement.scrollHeight : 0;
		}



		var screenOverlay = document.createElement ("div");
		screenOverlay.id = "screenOverlay";
		screenOverlay.style.height = ScrollTop + 20 + 'px' ;
		document.body.appendChild (screenOverlay);

		screenOverlay_shown = true;
	}
}

function screenOverlay_hide()
{
	if (screenOverlay_shown)
	{
		var screenOverlay = document.getElementById("screenOverlay");
		document.body.removeChild (screenOverlay);
		screenOverlay_shown = false;
	}
}


function logoff(onlyUIChanges)
{
	if (!onlyUIChanges)
	{
		var xmlhttp = getTransferObject();
		if(!xmlhttp)
		{
			throw "Download the newer Firefox/IE or upgrade your browser please.";
			return false;
		}
			
		else
		{
			TheUrl = 'Module_IM/IM.asp?action=logoff';
			IsAsync = true;
			xmlhttp.open("GET",TheUrl ,IsAsync);		
			xmlhttp.send(null);
			
			xmlhttp.onreadystatechange = function ()
			{
				if (xmlhttp.readyState == 4)
				{
					HttpStatus = xmlhttp.status;					

					if (HttpStatus==200)
					{						
						document.getElementById ("im_bar_loggedin").style.display = 'none';
						document.getElementById ("im_bar_loggedout").style.display = '';

						// get message sender info
						URL = 'Module_Registration/Registration.asp?action=getuserinfo';
						Parameters = 'null';
						Method = 'GET';
						IsAsync = true;
						onSuccess = function(){logoff_getGuestName_onSuccess(ResponseText);};
						onFailure = function(){ajaxFailure(ResponseText, HttpStatus);};
						AjaxCall (URL, Parameters, Method, IsAsync, onSuccess, onFailure);	
					}
				}
			}
		}
	}
	else
	{
		document.getElementById ("im_bar_loggedin").style.display = 'none';
		document.getElementById ("im_bar_loggedout").style.display = '';
	}

}


function logoff_getGuestName_onSuccess (ResponseText)
{

	xmlDOM_userInfo = getUserInfo (ResponseText);
	guestNumber = getContent_FromDOM_byTagName(xmlDOM_userInfo, 'guestNumber', 0);
	username = 'אורח_' + guestNumber;
	document.getElementById ("im_helloContainer").innerHTML = 'שלום ' + username;
	getIMmessages();


}

// ****************************************************************************
//                           Login Functions
// ****************************************************************************

var login_opened = false;
function login_popup()
{

	if (!login_opened)
	{
		screenOverlay_show();

		var mainContainer = document.createElement ("div");
		mainContainer.id = 'Login_MainContainer';
		mainContainer.style.position = 'fixed';
		mainContainer.style.top = '100px';
		mainContainer.style.width = '100%';
		document.body.appendChild (mainContainer);

		var contentContainer = document.createElement ("div");
		contentContainer.id = 'Login_ContentContainer';
		contentContainer.className = 'ContentContainer';
		HTML = '<div class="boxHeadline">התחברות</div>';
		HTML += '<div class="IM_fieldMandatory">*</div> <div class="IM_fieldHeadline">שם משתמש:</div> <div class="IM_fieldInputContainer"><input class="IM_fieldInput" type="text" id="username" name="username" maxlength="15"></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div class="IM_fieldMandatory">*</div> <div class="IM_fieldHeadline">סיסמא:</div> <div class="IM_fieldInputContainer"><input class="IM_fieldInput" type="password" id="password" name="password" maxlength="15"></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div style="text-align:center"><input class="IM_Button" type="button" name="submit" id="submit" value="אישור" onclick="login(document.getElementById(\'username\').value, document.getElementById(\'password\').value, false)">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input class="IM_Button" type="button" name="cancel" id="cancel" value="ביטול" onclick="login_cancel()"></div>';
		HTML += '<div class="IM_systemMessage" id="systemMessage"></div>';
		contentContainer.innerHTML = HTML;

		mainContainer.appendChild (contentContainer);
		login_opened = true;
	}
}


function login(username, password, onlyUIChanges)
{
	if (!onlyUIChanges)
	{
		if ((username =='') || (password == '')) {writeSystemMessage('נא להזין שם משתמש וסיסמא'); return false;}

		var xmlhttp = getTransferObject();
		if(!xmlhttp)
		{
			throw "Download the newer Firefox/IE or upgrade your browser please.";
			return false;
		}
			
		else
		{
			Parameters = '&username='+escape(username)+'&password='+escape(password);
			TheUrl = 'Module_Registration/Registration.asp?action=login'+ Parameters;
			IsAsync = true;
			xmlhttp.open("GET",TheUrl ,IsAsync);		
			xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8")
			xmlhttp.send(null);
			
			xmlhttp.onreadystatechange = function ()
			{
				if (xmlhttp.readyState == 4)
				{
					HttpStatus = xmlhttp.status;

					if (HttpStatus==200)
					{
						responseText = xmlhttp.responseText;

						if (responseText == '0')
						{
							writeSystemMessage ('פרטי ההתחברות שלך אינם נכונים. אנא נסה שנית.');
						}

						if (responseText == '1')
						{
							document.getElementById ("im_bar_loggedout").style.display = 'none';
							document.getElementById ("im_bar_loggedin").style.display = '';
							document.getElementById ("im_helloContainer").innerHTML = 'שלום ' + username;
							login_cancel();
						}

					}
				}
			}
		}
	}
	else
	{
		document.getElementById ("im_bar_loggedout").style.display = 'none';
		document.getElementById ("im_bar_loggedin").style.display = '';
	}
}

function login_cancel()
{
	var mainContainer = document.getElementById("Login_MainContainer");
	document.body.removeChild (mainContainer);
	screenOverlay_hide();
	login_opened = false;
}


// ****************************************************************************
//                           Registration Functions
// ****************************************************************************


function validateRegistration(object, newAccount)
{

	if (newAccount)
	{
		Obj_username = document.getElementById("username");
		if (Obj_username.value == '') {writeSystemMessage ('נא להזין שם משתמש'); return false;}
	}
	Obj_password1 = document.getElementById("password1");
	Obj_password2 = document.getElementById("password2");
	if (Obj_password1.value == '') {writeSystemMessage ('נא להזין סיסמא'); return false;}
	if (Obj_password2.value == '') {writeSystemMessage ('נא להזין וידוי-סיסמא'); return false;}
	
	if (Obj_password2.value != Obj_password1.value) {writeSystemMessage ('הסיסמא אינה תואמת לוידוי-הסיסמא'); return false;}
	return true;

}


var registration_opened = false;
function register()
{

	if (!registration_opened)
	{

		screenOverlay_show();

		var mainContainer = document.createElement ("div");
		mainContainer.id = 'Registration_MainContainer';
		mainContainer.style.position = 'fixed';
		mainContainer.style.top = '100px';
		mainContainer.style.width = '100%';
		document.body.appendChild (mainContainer);

		var contentContainer = document.createElement ("div");
		contentContainer.id = 'Registration_ContentContainer';
		contentContainer.className = 'ContentContainer';
		HTML = '<form method="post" style="display:inline" action="Module_Registration/Registration.asp?Action=register" enctype="multipart/form-data" name="form1" target="uploadFrame" onsubmit="return register_submit(this,true)">';
		HTML += '<div class="boxHeadline">הרשמה</div>';
		HTML += '<div class="IM_fieldMandatory">*</div> <div class="IM_fieldHeadline">שם משתמש:</div> <div class="IM_fieldInputContainer"><input class="IM_fieldInput" type="text" name="username" id="username" maxlength="15"></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div class="IM_fieldMandatory">*</div> <div class="IM_fieldHeadline">סיסמא:</div> <div class="IM_fieldInputContainer"><input class="IM_fieldInput" type="password" name="password1" id="password1" maxlength="15"></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div class="IM_fieldMandatory">*</div> <div class="IM_fieldHeadline">וידוי-סיסמא:</div> <div class="IM_fieldInputContainer"><input class="IM_fieldInput" type="password" name="password2" id="password2" maxlength="15"></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div class="IM_fieldMandatory">&nbsp;</div> <div class="IM_fieldHeadline">שם פרטי:</div> <div class="IM_fieldInputContainer"><input class="IM_fieldInput" type="text" name="firstname" maxlength="15"></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div class="IM_fieldMandatory">&nbsp;</div> <div class="IM_fieldHeadline">שם משפחה:</div> <div class="IM_fieldInputContainer"><input class="IM_fieldInput" type="text" name="lastname" maxlength="15"></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div class="IM_fieldMandatory">&nbsp;</div> <div class="IM_fieldHeadline">עיר:</div> <div class="IM_fieldInputContainer"><input class="IM_fieldInput" type="text" name="city" maxlength="15"></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div class="IM_fieldMandatory">&nbsp;</div> <div class="IM_fieldHeadline">מין:</div> <div class="IM_fieldInputContainer"><select style="width:80px;" class="IM_fieldInput" name="gender"><option value="0">בחר</option><option value="1">זכר</option><option value="2">נקבה</option></select></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div class="IM_fieldMandatory">&nbsp;</div> <div class="IM_fieldHeadline">תאריך לידה:</div> <div class="IM_fieldInputContainer"><input class="IM_fieldInput" style="width:30px; text-align:left;" type="text" name="dob_year" maxlength="4"> / <input class="IM_fieldInput" style="width:15px; text-align:left;" type="text" name="dob_month" maxlength="2"> / <input class="IM_fieldInput" style="text-align:left; width:15px;" type="text" name="dob_day" maxlength="2"></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div class="IM_fieldMandatory">&nbsp;</div> <div class="IM_fieldHeadline">תמונה:</div> <div class="IM_fieldInputContainer"><input class="IM_fieldInput" type="file" name="picture"></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div style="text-align:center"><input class="IM_Button" type="submit" name="submit" id="submit" value="אישור">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input class="IM_Button" type="button" name="cancel" id="cancel" value="ביטול" onclick="register_cancel()"></div>';
		HTML += '<div class="IM_systemMessage" id="systemMessage"></div>';
		HTML += '<iframe name="uploadFrame" id="uploadFrame" width="0" height="0" frameborder="0"></iframe>';
		HTML += '</form>';
		contentContainer.innerHTML = HTML;

		mainContainer.appendChild (contentContainer);
		registration_opened = true;
	}
}


function register_submit(object,newAccount)
{

	result =  validateRegistration(object, newAccount);
	if (!result) {return false;}

	document.getElementById("submit").value = 'אנא המתן...';
	document.getElementById("submit").disabled = true;

	document.getElementById("cancel").style.display = 'none';

	return true;

}


function register_showOriginalButtons()
{
	document.getElementById("submit").value = 'אישור';
	document.getElementById("submit").disabled = false;

	document.getElementById("cancel").style.display = '';
}


function registration_successfull()
{

	var mainContainer = document.getElementById ("Registration_MainContainer");
	var Registration_ContentContainer = document.getElementById ("Registration_ContentContainer");

	var RegistrationSuccessfull_ContentContainer = document.createElement ("div");
	RegistrationSuccessfull_ContentContainer.id = 'RegistrationSuccessfull_ContentContainer';
	RegistrationSuccessfull_ContentContainer.className = 'ContentContainer';
	HTML = '<div class="boxHeadline">הרשמה</div>';
	HTML += '<div class="IM_systemMessage" id="systemMessage">חשבונך נוצר בהצלחה</div>';
	HTML += '<div style="text-align:center"><input class="IM_Button" type="button" name="cancel" value="סגור" onclick="register_cancel()"></div>';
	RegistrationSuccessfull_ContentContainer.innerHTML = HTML;

	mainContainer.removeChild (Registration_ContentContainer);
	mainContainer.appendChild (RegistrationSuccessfull_ContentContainer);

	login('','',true);

}


function register_cancel()
{
	var mainContainer = document.getElementById("Registration_MainContainer");
	document.body.removeChild (mainContainer);
	screenOverlay_hide();
	registration_opened = false;
}

// ****************************************************************************
//                         Change Details Functions
// ****************************************************************************

function reloadImage(url)
{
	var myimage = new Image();
	myimage.src = url+'?rnd='+Math.random();
}

var changeDetails_opened = false;
function updateDetails()
{

	if (!changeDetails_opened)
	{

		var xmlhttp = getTransferObject();
		if(!xmlhttp)
		{
			throw "Download the newer Firefox/IE or upgrade your browser please.";
			return false;
		}
			
		else
		{

			TheUrl = 'Module_Registration/Registration.asp?action=getuserinfo';
			IsAsync = true;
			xmlhttp.open("GET",TheUrl ,IsAsync);	
			xmlhttp.send(null);
			
			xmlhttp.onreadystatechange = function ()
			{
				if (xmlhttp.readyState == 4)
				{
					HttpStatus = xmlhttp.status;

					if (HttpStatus==200)
					{
						try //Internet Explorer
						  {
						  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
						  xmlDoc.async="false";
						  xmlDoc.loadXML(xmlhttp.responseText);
						  browser = 'ie';
						  }
						catch(e)
						  {
						  try //Firefox, Mozilla, Opera, etc.
							{
							parser=new DOMParser();
							xmlDoc=parser.parseFromString(xmlhttp.responseText,"text/xml");
							browser='firefox';
							}
						  catch(e) {alert(e.message)}
						  }

						var password, firstname, lastname, dob, city, gender, gender_male, gender_female;

						if (browser == 'ie')
						{
							password = xmlDoc.documentElement.getElementsByTagName("password")[0].text;
							firstname = xmlDoc.documentElement.getElementsByTagName("firstname")[0].text;
							lastname = xmlDoc.documentElement.getElementsByTagName("lastname")[0].text;
							dob = xmlDoc.documentElement.getElementsByTagName("dob")[0].text;
							city = xmlDoc.documentElement.getElementsByTagName("city")[0].text;
							gender = xmlDoc.documentElement.getElementsByTagName("gender")[0].text;
						}
						else
						{
							password = xmlDoc.documentElement.getElementsByTagName("password")[0].textContent;
							firstname = xmlDoc.documentElement.getElementsByTagName("firstname")[0].textContent;
							lastname = xmlDoc.documentElement.getElementsByTagName("lastname")[0].textContent;
							dob = xmlDoc.documentElement.getElementsByTagName("dob")[0].textContent;
							city = xmlDoc.documentElement.getElementsByTagName("city")[0].textContent;
							gender = xmlDoc.documentElement.getElementsByTagName("gender")[0].textContent;

						}

						document.getElementById ("password1").value = password;
						document.getElementById ("password2").value = password;
						document.getElementById ("IM_input_firstname").value = firstname;
						document.getElementById ("IM_input_lastname").value = lastname;
						document.getElementById ("IM_input_city").value = city;


						if (gender == 1)
						{
							document.getElementById ("IM_input_gender").selectedIndex = 1;
						}
						
						if (gender == 2)
						{
							document.getElementById ("IM_input_gender").selectedIndex = 2;
						}
						
						if (dob!='')
						{
							ARR_dob = dob.split ('/');
							document.getElementById ("IM_input_dob_day").value = ARR_dob[0];
							document.getElementById ("IM_input_dob_month").value = ARR_dob[1];
							document.getElementById ("IM_input_dob_year").value = ARR_dob[2];
						}

					}
				}
			}
		}

		screenOverlay_show();

		var mainContainer = document.createElement ("div");
		mainContainer.id = 'Registration_MainContainer';
		mainContainer.style.position = 'fixed';
		mainContainer.style.top = '100px';
		mainContainer.style.width = '100%';
		document.body.appendChild (mainContainer);

		var contentContainer = document.createElement ("div");
		contentContainer.id = 'Registration_ContentContainer';
		contentContainer.className = 'ContentContainer';
		HTML = '<form method="post" style="display:inline" action="Module_Registration/Registration.asp?Action=changedetails" enctype="multipart/form-data" name="form1" target="uploadFrame" onsubmit="return register_submit(this, false)">';
		HTML += '<div class="boxHeadline">עדכון פרטים</div>';
		HTML += '<div class="IM_fieldMandatory">*</div> <div class="IM_fieldHeadline">סיסמא:</div> <div class="IM_fieldInputContainer"><input id="password1" class="IM_fieldInput" type="password" name="password1" maxlength="15"></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div class="IM_fieldMandatory">*</div> <div class="IM_fieldHeadline">וידוי-סיסמא:</div> <div class="IM_fieldInputContainer"><input id="password2" class="IM_fieldInput" type="password" name="password2" maxlength="15"></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div class="IM_fieldMandatory">&nbsp;</div> <div class="IM_fieldHeadline">שם פרטי:</div> <div class="IM_fieldInputContainer"><input id="IM_input_firstname" class="IM_fieldInput" type="text" name="firstname" maxlength="15"></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div class="IM_fieldMandatory">&nbsp;</div> <div class="IM_fieldHeadline">שם משפחה:</div> <div class="IM_fieldInputContainer"><input id="IM_input_lastname" class="IM_fieldInput" type="text" name="lastname" maxlength="15"></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div class="IM_fieldMandatory">&nbsp;</div> <div class="IM_fieldHeadline">עיר:</div> <div class="IM_fieldInputContainer"><input id="IM_input_city" class="IM_fieldInput" type="text" name="city" maxlength="15"></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div class="IM_fieldMandatory">&nbsp;</div> <div class="IM_fieldHeadline">מין:</div> <div class="IM_fieldInputContainer"><select id="IM_input_gender" style="width:80px;" class="IM_fieldInput" name="gender"><option value="0">בחר</option><option value="1">זכר</option><option value="2">נקבה</option></select></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div class="IM_fieldMandatory">&nbsp;</div> <div class="IM_fieldHeadline">תאריך לידה:</div> <div class="IM_fieldInputContainer"><input id="IM_input_dob_year" class="IM_fieldInput" style="width:30px; text-align:left;" type="text" name="dob_year" maxlength="4"> / <input id="IM_input_dob_month" class="IM_fieldInput" style="width:15px; text-align:left;" type="text" name="dob_month" maxlength="2"> / <input id="IM_input_dob_day" class="IM_fieldInput" style="text-align:left; width:15px;" type="text" name="dob_day" maxlength="2"></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div class="IM_fieldMandatory">&nbsp;</div> <div class="IM_fieldHeadline">תמונה:</div> <div class="IM_fieldInputContainer"><input class="IM_fieldInput" type="file" name="picture"></div>';
		HTML += '<div style="clear:both; height:2px;"></div>';
		HTML += '<div style="text-align:center"><input class="IM_Button" type="submit" name="submit" id="submit" value="אישור">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input class="IM_Button" type="button" name="cancel" id="cancel" value="ביטול" onclick="changedetails_cancel()"></div>';
		HTML += '<div class="IM_systemMessage" id="systemMessage"></div>';
		HTML += '<iframe name="uploadFrame" id="uploadFrame" width="0" height="0" frameborder="0"></iframe>';
		HTML += '</form>';
		contentContainer.innerHTML = HTML;

		mainContainer.appendChild (contentContainer);
		changeDetails_opened = true;
	}
}




function changeDetails_successfull()
{

	var mainContainer = document.getElementById ("Registration_MainContainer");
	var Registration_ContentContainer = document.getElementById ("Registration_ContentContainer");

	var RegistrationSuccessfull_ContentContainer = document.createElement ("div");
	RegistrationSuccessfull_ContentContainer.id = 'RegistrationSuccessfull_ContentContainer';
	RegistrationSuccessfull_ContentContainer.className = 'ContentContainer';
	HTML = '<div class="boxHeadline">עדכון פרטים</div>';
	HTML += '<div class="IM_systemMessage" id="systemMessage">חשבונך עודכן בהצלחה</div>';
	HTML += '<div style="text-align:center"><input class="IM_Button" type="button" name="cancel" value="סגור" onclick="changedetails_cancel()"></div>';
	RegistrationSuccessfull_ContentContainer.innerHTML = HTML;

	mainContainer.removeChild (Registration_ContentContainer);
	mainContainer.appendChild (RegistrationSuccessfull_ContentContainer);

}

function changedetails_cancel()
{
	var mainContainer = document.getElementById("Registration_MainContainer");
	document.body.removeChild (mainContainer);
	screenOverlay_hide();
	changeDetails_opened = false;
}




// ****************************************************************************
//                   Users list & Messages check Functions
// ****************************************************************************
var IM_ResponseText;
var xmlhttp = getTransferObject();
function getIMmessages()
{

	
	if(!xmlhttp)
	{
		throw "Download the newer Firefox/IE or upgrade your browser please.";
		return false;
	}
		
	else
	{
		TheUrl = 'Module_IM/IM.asp?action=checkmsgs&rnd=' + Math.random();
		IsAsync = true;
		xmlhttp.open("GET",TheUrl ,IsAsync);
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
		xmlhttp.send(null);
		
		xmlhttp.onreadystatechange = function ()
		{
			if (xmlhttp.readyState == 4)
			{
				HttpStatus = xmlhttp.status;

				if (HttpStatus==200)
				{
					IM_ResponseText = xmlhttp.responseText;
					updateIM();
					checkMessages(false);
				}
			}
		}

	}
}



function updateIM()
{

	try //Internet Explorer
      {
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async="false";
      xmlDoc.loadXML(IM_ResponseText);
      browser = 'ie';
      }
    catch(e)
      {
      try //Firefox, Mozilla, Opera, etc.
        {
        parser=new DOMParser();
        xmlDoc=parser.parseFromString(IM_ResponseText,"text/xml");
        browser='firefox';
        }
      catch(e) {alert(e.message)}
      }

	

	totalUsers = xmlDoc.documentElement.getElementsByTagName("onlineUsers")[0].childNodes.length;	
	document.getElementById("IM_BarText_UsersOnline_TotalUsers").innerHTML = totalUsers;

	HTML = '';
	for (i=0; i<totalUsers; i++)
	{
		if (i % 2 == 0) {backgroundcolor = '#C0C0FF';}
		else {backgroundcolor = '#C6C6FF';}

		nodeType = xmlDoc.documentElement.getElementsByTagName("onlineUsers")[0].childNodes[i].nodeType;

		if (nodeType == 1)
		{
			userID = xmlDoc.documentElement.getElementsByTagName("onlineUsers")[0].childNodes[i].getAttribute ("userID");
			userType = xmlDoc.documentElement.getElementsByTagName("onlineUsers")[0].childNodes[i].getAttribute ("userType");

			if (browser == 'ie')
			{
				username = xmlDoc.documentElement.getElementsByTagName("onlineUsers")[0].childNodes[i].text;
			}
			else
			{
				username = xmlDoc.documentElement.getElementsByTagName("onlineUsers")[0].childNodes[i].textContent;
			}


			if (userType == '1') // guest
			{
				userID = xmlDoc.documentElement.getElementsByTagName("onlineUsers")[0].childNodes[i].getAttribute ("userID");
				HTML += '<div style="direction:rtl; clear:both; background-color:'+backgroundcolor+'; height:30px;"><div style="width:25px; float:right;"><img src="http://www.webix.me/images/IM/question_mark.png" title="אורח באתר" align="top"></div><div style="float:right; margin-right:10px;"><a href="#a" onclick="sendMessage('+userID+',\''+username+'\',\'\',\'\',\'\',\'\',0)">'+username+'</a></div></div>';
			}
			else // registered
			{
				
				
				Firstname = xmlDoc.documentElement.getElementsByTagName("onlineUsers")[0].childNodes[i].getAttribute ("Firstname");
				Lastname = xmlDoc.documentElement.getElementsByTagName("onlineUsers")[0].childNodes[i].getAttribute ("Lastname");
				HasProfilePicture = xmlDoc.documentElement.getElementsByTagName("onlineUsers")[0].childNodes[i].getAttribute ("HasProfilePicture");
				Age = xmlDoc.documentElement.getElementsByTagName("onlineUsers")[0].childNodes[i].getAttribute ("Age");
				Gender = xmlDoc.documentElement.getElementsByTagName("onlineUsers")[0].childNodes[i].getAttribute ("Gender");
				city = xmlDoc.documentElement.getElementsByTagName("onlineUsers")[0].childNodes[i].getAttribute ("city");
				userlevel = xmlDoc.documentElement.getElementsByTagName("onlineUsers")[0].childNodes[i].getAttribute ("userlevel");
				
				GenderHTML = ''
				if (Gender == '1')
				{
					GenderHTML = 'ז';
				}

				if (Gender == '2')
				{
					GenderHTML = 'נ';
				}


				ExtraInfo = '';
				if ((Age != '') && (GenderHTML != ''))
				{
					ExtraInfo = '('+GenderHTML+' / '+Age+')';
				}
				else
				{
					if (Age != '')
					{
						ExtraInfo = '('+Age+')';
					}

					if (GenderHTML != '')
					{
						ExtraInfo = '('+GenderHTML+')';
					}		
				}

				if (HasProfilePicture == 1)
				{
					PictureHTML = '<div style="width:25px; float:right; text-align:center; title="לחץ להגדלה"><a href="Module_Registration/UserPictures/800Mx600M/'+userID+'.jpg" target="_blank"><img style="border-width:0px;" align="top" src="Module_Registration/UserPictures/25Mx25M/' + userID + '.jpg" title="לחץ להגדלה"></a></div>';
				}
				else
				{

					if (Gender == '')  {PictureHTML = '<div style="width:25px; float:right;"><img src="http://www.webix.me/images/IM/question_mark.png" width="25" height="25" title="גולש באתר"></div>';}
					if (Gender == '1')  {PictureHTML = '<div style="width:25px; float:right;"><img src="http://www.webix.me/images/IM/male_user_icon.png" width="25" height="25" title="גולש באתר"></div>';}
					if (Gender == '2') {PictureHTML = '<div style="width:25px; float:right;"><img src="http://www.webix.me/images/IM/user_female.png" width="25" height="25" title="גולשת באתר"></div>';}
				}
				

				if (userlevel == 0)
				{
					textColor = 'black';
				}
				else
				{
					textColor = 'red';
				}

				HTML += '<div style="clear:both; height:1px; margin-bottom:2px; margin-top:2px;"></div>';
				HTML += '<div style="direction:rtl; background-color:'+backgroundcolor+'; height:30px;">'+PictureHTML+' <div style="float:right; margin-right:10px; width:160px;"><a style="color:'+textColor+';" href="#a" onclick="sendMessage('+userID+',\''+username+'\',\''+Firstname+'\',\''+Lastname+'\',\''+city+'\',\''+Gender+'\',\''+Age+'\','+HasProfilePicture+');">'+username+' ' + ExtraInfo + '<br>'+Firstname+' '+Lastname+'</a></div></div>';
			}

			
		}
	}

	document.getElementById("IM_UsersList_Content").innerHTML = '<br>' + HTML;
}



function IM_switchUsersList()
{
	UsersList = document.getElementById("IM_UsersList");
	
	if (UsersList.style.display == '')
	{
		UsersList.style.display = 'none';
		document.getElementById("img_openUsersList").height = '16';
	}
	else
	{
		UsersList.style.display = '';
		document.getElementById("img_openUsersList").height = '0';
		document.getElementById("lnk_closeUsersList").blur();
	}

}


// ****************************************************************************
//                             New Message
// ****************************************************************************

var sendMessage_opened = false;
function sendMessage (UserID, username, firstname, lastname, city, Gender, Age, HasPicture)
{	

	// build message HTML
	username = '<b>שם משתמש: </b>' + username + '<br>';
	fullname = '<b>שם מלא:</b> לא הוזן<br>';

	if ((firstname != '') && (lastname == ''))
	{
		fullname = '<b>שם מלא:</b> ' + firstname + '<br>';
	}

	if ((firstname == '') && (lastname != ''))
	{
		fullname = '<b>שם מלא:</b> ' + lastname + '<br>';
	}

	if ((firstname != '') && (lastname != ''))
	{
		fullname = '<b>שם מלא:</b> ' + firstname + ' ' + lastname + '<br>';
	}


	if (HasPicture == '1')
	{
		PictureHTML = '<div style="float:right"><a href="Module_Registration/UserPictures/800Mx600M/'+UserID+'.jpg" target="_blank"><img style="border-width:0px;" src="Module_Registration/UserPictures/100Mx100M/'+UserID+'.jpg" align="top" title="לחץ להגדלה"></a></div><div style="float:right; margin-right:10px;">';
	}
	else
	{
		PictureHTML = '<div style="float:right;">';
	}

	if (Age != '')
	{
		AgeHTML = '<b>גיל:</b> ' + Age + '<br>';
	}
	else
	{
		AgeHTML = '<b>גיל:</b> לא הוזן<br>';
	}


	if (Gender == '1')
	{
		GenderHTML = '<b>מין:</b> זכר' + '<br>';
	}


	if (Gender == '2')
	{
		GenderHTML = '<b>מין:</b> נקבה' + '<br>';
	}

	if (Gender == '')
	{
		GenderHTML = '<b>מין:</b> לא הוזן<br>';
	}

	if (city != '')
	{
		cityHTML = '<b>עיר:</b> ' + city + '<br>';
	}
	else
	{
		cityHTML = '<b>עיר:</b> לא הוזן<br>';			
	}

	if (!sendMessage_opened)
	{
		screenOverlay_show();

		var mainContainer = document.createElement ("div");
		mainContainer.id = 'SendMessage_MainContainer';
		mainContainer.style.position = 'fixed';
		mainContainer.style.top = '100px';
		mainContainer.style.width = '100%';
		document.body.appendChild (mainContainer);

		var contentContainer = document.createElement ("div");
		contentContainer.id = 'SendMessage_ContentContainer';
		contentContainer.className = 'ContentContainer';
		contentContainer.style.height = '280px';

	}

	

	HTML = '<form method="post" style="display:inline" action="Module_IM/IM.asp?Action=sendmessage" name="form1" target="sendmessageFrame" onsubmit="return sendmessage_submit(this)">';
	HTML += '<div class="boxHeadline">שליחת הודעה</div>';
	HTML += '<div style="clear:both; height:2px;">';
	HTML += '<div style="text-align:right;">'+PictureHTML + username + fullname + AgeHTML + GenderHTML + cityHTML +'</div></div>';
	HTML += '<div style="clear:both; height:2px;"></div>';
	HTML += '<div><textarea name="messageContent" id="messageContent" style="width:305px; height:100px; background-color:transparent; border:1px solid black"></textarea></div>';
	HTML += '<div style="clear:both; height:2px;"></div>';
	HTML += '<div style="text-align:center"><input class="IM_Button" type="button" name="sendMessage" id="sendMessage" value="שליחה" onclick="sendmessage_submit('+UserID+');">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input class="IM_Button" type="button" name="cancel" id="cancel" value="ביטול" onclick="message_cancel()"></div>';
	HTML += '<div class="IM_systemMessage" id="systemMessage"></div>';
	HTML += '<iframe name="sendmessageFrame" id="sendmessageFrame" width="0" height="0" frameborder="0"></iframe>';
	HTML += '</form>';

	if (sendMessage_opened)
	{
		contentContainer = document.getElementById("SendMessage_ContentContainer");
	}
	contentContainer.innerHTML = HTML;

	if (!sendMessage_opened)
	{
		mainContainer.appendChild (contentContainer);
	}

	clearInterval (IMinterval);
	sendMessage_opened = true;

}


function newMessage_successfull()
{

	var mainContainer = document.getElementById ("SendMessage_MainContainer");
	var ContentContainer = document.getElementById ("SendMessage_ContentContainer");

	var New_ContentContainer = document.createElement ("div");
	New_ContentContainer.id = 'SendMessageSuccessfull_ContentContainer';
	New_ContentContainer.className = 'ContentContainer';
	HTML = '<div class="boxHeadline">שליחת הודעה</div>';
	HTML += '<div class="IM_systemMessage" id="systemMessage">ההודעה נשלחה בהצלחה</div>';
	HTML += '<div style="text-align:center"><input class="IM_Button" type="button" name="cancel" value="סגור" onclick="message_cancel()"></div>';
	New_ContentContainer.innerHTML = HTML;

	mainContainer.removeChild (ContentContainer);
	mainContainer.appendChild (New_ContentContainer);

}

function message_cancel()
{
	var mainContainer = document.getElementById("SendMessage_MainContainer");
	document.body.removeChild (mainContainer);

	if (!viewmessage_opened)
	{
		screenOverlay_hide();
	}

	IMinterval = setInterval ("getIMmessages();",10000);
	sendMessage_opened = false;
}


function sendmessage_submit(recipient_userID)
{

	messageContent = document.getElementById("messageContent").value.replace(new RegExp( "\\n", "g" ), '<br>'); 
	if (messageContent =='')  {writeSystemMessage('נא להזין תוכן להודעה'); return false;}

	document.getElementById("sendMessage").value = 'אנא המתן...';
	document.getElementById("sendMessage").disabled = true;

	if(!xmlhttp)
	{
		throw "Download the newer Firefox/IE or upgrade your browser please.";
		return false;
	}
		
	else
	{
		Parameters = 'recipient_userID='+escape(recipient_userID)+'&messageContent='+escape(messageContent);
		TheUrl = 'Module_IM/IM.asp?action=sendmessage';
		IsAsync = true;
		xmlhttp.open("POST",TheUrl ,IsAsync);		
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
		xmlhttp.send(Parameters);
		
		xmlhttp.onreadystatechange = function ()
		{
			if (xmlhttp.readyState == 4)
			{
				HttpStatus = xmlhttp.status;

				if (HttpStatus==200)
				{
					newMessage_successfull();

				}
			}
		}
	}
	
}



var browser = 'unknown';
function returnXMLparser(IM_ResponseText)
{
	try //Internet Explorer
	  {
		  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		  xmlDoc.async="false";
		  xmlDoc.loadXML(IM_ResponseText);
		  browser = 'ie';
		  return xmlDoc;
	  }
	catch(e)
	  {
	  try //Firefox, Mozilla, Opera, etc.
		{
			parser=new DOMParser();
			xmlDoc=parser.parseFromString(IM_ResponseText,"text/xml");
			browser='firefox';
			return xmlDoc;
		}
	  catch(e) {alert(e.message)}
	  }
}


function getAttribute_FromDOM(DOM, leafNumber, attributeName)
{
	return DOM.childNodes[leafNumber].getAttribute (attributeName); 
}

function getContent_FromDOM(DOM, leafNumber)
{
	if (browser == 'ie')
	{
		return DOM.childNodes[leafNumber].text; 
	}
	else
	{
		return DOM.childNodes[leafNumber].textContent; 
	}
}

function getContent_FromDOM_byTagName(DOM, tagName, leafNumber)
{
	if (browser == 'ie')
	{
		return DOM.getElementsByTagName(tagName)[leafNumber].text; 
	}
	else
	{
		return DOM.getElementsByTagName(tagName)[leafNumber].textContent; 
	}
}


function AjaxCall (URL, Parameters, Method, IsAsync, func_OnSuccess, func_OnFailure)
{
	if(!xmlhttp)
	{
		throw "Download the newer Firefox/IE or upgrade your browser please.";
		return false;
	}
		
	else
	{

		xmlhttp.open(Method, URL, IsAsync);
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
		xmlhttp.send(Parameters);

		xmlhttp.onreadystatechange = function ()
		{
			if (xmlhttp.readyState == 4)
			{
				HttpStatus = xmlhttp.status;
				ResponseText = xmlhttp.responseText;

				if (HttpStatus==200)
				{
					func_OnSuccess(ResponseText);
				}
				else
				{
					func_OnFailure (ResponseText, HttpStatus);
				}
			}
		}
	}	
}


function getUserInfo (ResponseText)
{

	return returnXMLparser(ResponseText).getElementsByTagName ("userinfo")[0];
}







// ****************************************************************************
//                                view messages
// ****************************************************************************

var totalMessages = 0;
var client_TotalMessages = 0;
var client_CurrentMsgID = 0;
var client_CurrentMessageNumber = 0;
var client_messagesDOM;
function checkMessages(nextMessage)
{
	if (!nextMessage)
	{
		client_messagesDOM = returnXMLparser(IM_ResponseText).getElementsByTagName ("messages")[0];
		totalMessages = client_messagesDOM.childNodes.length;
		
	}
	

	//alert ('client_TotalMessages: ' + client_TotalMessages + ' / totalMessages: ' + totalMessages);
	if ( ( (totalMessages > client_TotalMessages) && (!viewmessage_opened) ) || (nextMessage) )
	{

		if (!nextMessage)
		{
			client_TotalMessages = totalMessages;
		}

		// get first message data from DOM

		msgID = getAttribute_FromDOM(client_messagesDOM, 0, 'msgID');
		msgDate = getAttribute_FromDOM(client_messagesDOM, 0, 'msgDate');
		sender_userID = getAttribute_FromDOM(client_messagesDOM, 0, 'senderID');
		messageContent = getContent_FromDOM(client_messagesDOM, 0);

		client_CurrentMsgID = msgID;


		// get message sender info
		URL = 'Module_Registration/Registration.asp?action=getuserinfo&userid='+sender_userID+'&msgID='+msgID;
		Parameters = 'null';
		Method = 'GET';
		IsAsync = true;
		onSuccess = function(){checkMessages_onSuccess(ResponseText);};
		onFailure = function(){ajaxFailure(ResponseText, HttpStatus);};
		AjaxCall (URL, Parameters, Method, IsAsync, onSuccess, onFailure);		

	}

}


function checkMessages_onSuccess(ResponseText)
{
	client_CurrentMessageNumber++;

	//alert ('client_CurrentMessageNumber: ' + client_CurrentMessageNumber + ' / client_TotalMessages: ' + client_TotalMessages);

	// get sender user info
	xmlDOM_userInfo = getUserInfo (ResponseText);

	// build message box html
	if (client_CurrentMessageNumber < totalMessages)	{showNextButton = true;}
	else {showNextButton = false;}
	MessageBox_HTML = getViewMessageBox_HTML(xmlDOM_userInfo, showNextButton);

	// show message box
	showViewMessageBox(MessageBox_HTML);


	// flag message as read
	flagMessageAsRead(client_CurrentMsgID);


}



function flagMessageAsRead(msgID)
{
	// get message sender info
	URL = 'Module_IM/IM.asp?action=flagAsRead&msgID='+msgID;
	Parameters = 'null';
	Method = 'GET';
	IsAsync = true;
	onSuccess = function(){flagMessageAsRead_onSuccess(ResponseText);};
	onFailure = function(){ajaxFailure(ResponseText, HttpStatus);};
	AjaxCall (URL, Parameters, Method, IsAsync, onSuccess, onFailure);	
}

function flagMessageAsRead_onSuccess(ResponseText)
{
	client_TotalMessages-- ;
	client_messagesDOM.removeChild (client_messagesDOM.childNodes[0]);
}

function getViewMessageBox_HTML(xmlDOM_userInfo, showNextButton)
{

	
	// parse sender user info
	userType = getContent_FromDOM_byTagName(xmlDOM_userInfo, 'userType', 0);

	fullname = '<b>שם מלא:</b> לא הוזן<br>';
	usernameHTML = '<b>שם משתמש:</b> לא הוזן<br>';
	AgeHTML = '<b>גיל:</b> לא הוזן<br>';
	PictureHTML = '<div style="float:right;">';
	GenderHTML = '<b>מין:</b> לא הוזן<br>';
	cityHTML = '<b>עיר:</b> לא הוזן<br>';
	messageDateHTML = '<b>נשלחה ב- </b>&lrm;' + msgDate + '<br>';

	if (userType == '1') // registered user
	{
		userID = getContent_FromDOM_byTagName(xmlDOM_userInfo, 'userID', 0);
		username = getContent_FromDOM_byTagName(xmlDOM_userInfo, 'username', 0);
		password = getContent_FromDOM_byTagName(xmlDOM_userInfo, 'password', 0);
		firstname = getContent_FromDOM_byTagName(xmlDOM_userInfo, 'firstname', 0);
		lastname = getContent_FromDOM_byTagName(xmlDOM_userInfo, 'lastname', 0);
		Age = getContent_FromDOM_byTagName(xmlDOM_userInfo, 'age', 0);
		city = getContent_FromDOM_byTagName(xmlDOM_userInfo, 'city', 0);
		Gender = getContent_FromDOM_byTagName(xmlDOM_userInfo, 'gender', 0);
		HasPicture = getContent_FromDOM_byTagName(xmlDOM_userInfo, 'hasProfilePicture', 0);

		if ((firstname != '') && (lastname == ''))
		{
			fullname = '<b>שם מלא:</b> ' + firstname + '<br>';
		}

		if ((firstname == '') && (lastname != ''))
		{
			fullname = '<b>שם מלא:</b> ' + lastname + '<br>';
		}

		if ((firstname != '') && (lastname != ''))
		{
			fullname = '<b>שם מלא:</b> ' + firstname + ' ' + lastname + '<br>';
		}

		usernameHTML = '<b>שם משתמש: </b>' + username + '<br>';


		if (HasPicture == '1')
		{
			PictureHTML = '<div style="float:right"><a href="Module_Registration/UserPictures/800Mx600M/'+userID+'.jpg" target="_blank"><img style="border-width:0px;" src="Module_Registration/UserPictures/100Mx100M/'+userID+'.jpg" align="top" title="לחץ להגדלה"></a></div><div style="float:right; margin-right:10px;">';
		}

		if (Age != '')
		{
			AgeHTML = '<b>גיל:</b> ' + Age + '<br>';
		}


		if (Gender == '1')
		{
			GenderHTML = '<b>מין:</b> זכר' + '<br>';
		}


		if (Gender == '2')
		{
			GenderHTML = '<b>מין:</b> נקבה' + '<br>';
		}

		if (city != '')
		{
			cityHTML = '<b>עיר:</b> ' + city + '<br>';
		}

	}

	if (userType == '2') // guest user
	{
		userID = getContent_FromDOM_byTagName(xmlDOM_userInfo, 'userID', 0);
		guestNumber = getContent_FromDOM_byTagName(xmlDOM_userInfo, 'guestNumber', 0);

		if (guestNumber == '0')
		{
			username = '<אורח אשר אינו מחובר כעת>';
		}
		else
		{
			username = 'אורח_' + guestNumber;
		}
		usernameHTML = '<b>שם משתמש: </b>'+ username + '<br>';
	}



	// build message HTML
	HTML = '<div class="boxHeadline">צפייה בהודעה</div>';
	HTML += '<div style="clear:both; height:2px;">';
	HTML += '<div style="text-align:right;">'+PictureHTML + messageDateHTML + usernameHTML  + fullname + AgeHTML + GenderHTML + cityHTML +'</div></div>';
	HTML += '<div style="clear:both; height:2px;"></div>';
	HTML += '<div style="height:100px; overflow:auto;">'+messageContent+'</div>';
	HTML += '<div style="clear:both; height:2px;"></div>';

	if (userType == '1')
	{
		HTML += '<div style="text-align:center"><input class="IM_Button" type="button" name="submit" id="submit" value="תגובה" onclick="sendMessage('+userID+',\''+username+'\',\''+firstname+'\',\''+lastname+'\',\''+city+'\',\''+Gender+'\',\''+Age+'\','+HasPicture+');">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input class="IM_Button" type="button" name="cancel" id="cancel" value="סגור" onclick="viewmessage_cancel()">';
	}

	if (userType == '2')
	{
		HTML += '<div style="text-align:center"><input class="IM_Button" type="button" name="submit" id="submit" value="תגובה" onclick="sendMessage('+userID+',\''+username+'\',\'\',\'\',\'\',\'\',\'\',0)">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input class="IM_Button" type="button" name="cancel" id="cancel" value="סגור" onclick="viewmessage_cancel()">';
	}


	if (showNextButton)
	{
		HTML += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input class="IM_Button" type="button" name="nextMsg" id="nextMsg" value="להודעה הבאה" onclick="checkMessages(true);">';
	}

	HTML += '</div>';

	return HTML;

}


var viewmessage_opened = false;
function showViewMessageBox(MessageBox_HTML)
{
	// render message to screen
	if (!viewmessage_opened)
	{
		screenOverlay_show();

		var mainContainer = document.createElement ("div");
		mainContainer.id = 'ViewMessage_MainContainer';
		mainContainer.style.position = 'fixed';
		mainContainer.style.top = '100px';
		mainContainer.style.width = '100%';
		document.body.appendChild (mainContainer);

		var contentContainer = document.createElement ("div");
		contentContainer.id = 'ViewMessage_ContentContainer';
		contentContainer.className = 'ContentContainer';		
		contentContainer.style.height = '280px';
		contentContainer.innerHTML = MessageBox_HTML;

		// render message to screen
		mainContainer.appendChild (contentContainer);

		viewmessage_opened = true;

	}
	else
	{

		var contentContainer = document.getElementById("ViewMessage_ContentContainer");
		contentContainer.innerHTML = HTML;
	}
}


function viewmessage_cancel()
{
	var mainContainer = document.getElementById("ViewMessage_MainContainer");
	document.body.removeChild (mainContainer);
	screenOverlay_hide();
	viewmessage_opened = false;
	client_CurrentMessageNumber = 0;
}
