<!--
var currentPackage = 0;
//Get elements by id(For firefox)
function $(id){
	return document.getElementById(id);
}
//----------------------------------------------


//ajax: used to send http request during js

//url				target address
//method			'post' or 'get'
//queryString		like 'para0=value0&para1=value1'
//responseHandler 	Handler for http response
function sendHttpRequest(url, method, queryString, responseHandler) {

	http_request = null;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
		if (http_request == null) {
			alert("Can't init ajax");
			return;
		}
	}
	if(responseHandler){
		http_request.onreadystatechange = responseHandler;
	}
	switch(method){
		case 'post':
			http_request.open("post", url, true);
			http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
			http_request.send(queryString);
			break;
		case 'get':
			http_request.open("get", url+"?"+queryString, true);
			http_request.send(null);
			break;
		default:
			break;
	}
}
//-------------------------------------------------------------------------------------------------

//For eqifa integrate
function getParameters(){
 queryStr = document.location.href.split("?")
 var result = new Array();
 if(queryStr[1]){
  pairs = queryStr[1].split("&");
  for(i=0;i<pairs.length;i++){
   tmp = pairs[i].split("=");
   result[tmp[0]] = tmp[1];
  }
 }
 return result;
}
//-------------------------------------------
//For invitation ads out switch
function invitationAdsOutSwitch(invitationAds, signatureText){
	if(queryString == ''){
		alert('Please select');
	}
	var queryString = "invitationAds=" + invitationAds;
	queryString = queryString + "&signatureText=" + signatureText;
	sendHttpRequest("invitationAdsOutSwitch", 'post', queryString ,invitationAdsOutSwitchHandler);
}

function invitationAdsOutSwitchHandler(){
	if (http_request.readyState == 4) {
    if (http_request.status == 200) {
      var response_XML = http_request.responseXML;
			var results = response_XML.getElementsByTagName("Result");
			var result = parseInt(results[0].firstChild.nodeValue);
			switch(result){
				case 0:
						alert('Your settings is successfully updated');
						break;
				case 119:
						alert('Please promote your level');
						break;
				case 252:
						alert('Please login first');
						break;
				case 253:
						alert('You has been kicked out');
						break;
				case 255:
						alert('Network error');
						break;
				default:
				    break;
				}
      }
      else{
      alert('connection fail!');
     }
    } 
  }

//Register
//function register(phoneNumber, userName, email){
//	var queryString = ''
//}
//function registerHandler(){
//
//}
function register(userName, phoneNumber, emailAddress){
  if(confirm('Please confirm your input is: ' + phoneNumber + " Zozoc will send password by SMS to this phone!")){
  var queryString = "userName=" + userName;
  queryString = queryString + "&phoneNumber=" + phoneNumber;
  queryString = queryString + "&email=" + emailAddress;
  
  var parameters = getParameters();
  if(parameters["cid"] && parameters["website_id"]){
  	queryString = queryString + "&cid="+parameters["cid"];
  	queryString = queryString + "&website_id="+parameters["website_id"];
  }

  sendHttpRequest("regist", 'post', queryString ,registerHandler);
  } else {
  // Do nothing
  }
}

function registerWithPwd(userName, phoneNumber, emailAddress, pwd, pwdCfm){
	
  if(pwd != pwdCfm){
  	alert("The password and confirm which you input are not the same!");
  	return;
  }
		
  var queryString = "userName=" + userName;
  queryString = queryString + "&phoneNumber=" + phoneNumber;
  queryString = queryString + "&email=" + emailAddress;
  queryString = queryString + "&password=" + pwd;
  
  var parameters = getParameters();
  if(parameters["cid"] && parameters["website_id"]){
  	queryString = queryString + "&cid="+parameters["cid"];
  	queryString = queryString + "&website_id="+parameters["website_id"];
  }

  sendHttpRequest("regist_en.do", 'post', queryString ,registerHandler);
}

function registerHandler(){
  if (http_request.readyState == 4) {
    if (http_request.status == 200) {
          var result = parseInt(http_request.responseText);
      switch(result){
      case 0:
      case 6:
      //alert('send password error');
        alert('regist success!');
        break;
      case 1:
        alert('Register fail, this phone number is already our user!If you forget your password, please click "Forgot Password?" in login panel, we will send the password to your mobile phone with sms!');
        break;
      case 2:
        alert('Register fail, illegal phone number!');
        break;
      case 3:
        alert('Register fail, illegal email address.');
        break;
      case 4:
        alert('Register fail, name cannot be empty.');
        break;
      case 5:
        alert('Register fail, please try again later.');
        break;
      case 7:
        alert('Register fail, password is so short.');
        break;
      }
    } else {
      alert('connection fail!');
    }
  }
}
//------------------------------------------------


//Login
var currentLoginUserName;
var currentLoginUserPhoneNumber;
var currentLoginUserLanguage;
var currentLoginUserCredit;
var currentLoginUserBalance;
var currentLoingUserLimit;

var cookiesForUserPhoneNumber;
var cookiesForUserPassword;

function login(phoneNumber, password){
	var queryString = "phoneNumber=" + phoneNumber;
	queryString = queryString + "&password=" + password;
	cookiesForUserPassword = password;
	sendHttpRequest("login",'post',queryString,loginHandler);
}
function loginHandler(){
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var response_XML = http_request.responseXML;
			var results = response_XML.getElementsByTagName("Result");
			var result = parseInt(results[0].firstChild.nodeValue);
			switch(result){
				//For other countries
				case 0:
					var userNames = response_XML.getElementsByTagName("name");
					var phoneNumbers = response_XML.getElementsByTagName("number");
					var languages = response_XML.getElementsByTagName("lang");
					var credits = response_XML.getElementsByTagName("credit");
					var balances = response_XML.getElementsByTagName("balance");
					var limits = response_XML.getElementsByTagName("limit");
					var statuses = response_XML.getElementsByTagName("status");
					var levels = response_XML.getElementsByTagName("level");
					var isCreditAwards = response_XML.getElementsByTagName("isCreditAward");
					var isInvitationAdsOuts = response_XML.getElementsByTagName("isInvitationAdsOut");
					var isBlackLists = response_XML.getElementsByTagName("isBlackList");
					userName = userNames[0].firstChild.nodeValue;
					phoneNumber = phoneNumbers[0].firstChild.nodeValue;
					language = languages[0].firstChild.nodeValue;
					credit = credits[0].firstChild.nodeValue;
					balance = balances[0].firstChild.nodeValue;
					limit = limits[0].firstChild.nodeValue;
					userStatus = statuses[0].firstChild.nodeValue;
					if(userStatus == "getStatusError") userStatus ="&nbsp;";
					userLevel = levels[0].firstChild.nodeValue;
					userIsCreditAward = isCreditAwards[0].firstChild.nodeValue;
					userIsInvitationAdsOut = isInvitationAdsOuts[0].firstChild.nodeValue;
					userIsBlackList = isBlackLists[0].firstChild.nodeValue;
					loginFromOtherCountry(userName, phoneNumber, language,credit, balance,limit, userStatus, userLevel, userIsCreditAward, userIsInvitationAdsOut, userIsBlackList);
					//added by thinkersoft
					create_cookie(countrycode_cookie_name, document.getElementById("login_countryCode").value);
					create_cookie(phonenumber_cookie_name, document.getElementById("login_phoneNumber").value);
					break;
				//For china
				case 1:
				  $('userSettingButton').style.display='block';
					var userNames = response_XML.getElementsByTagName("name");
					var phoneNumbers = response_XML.getElementsByTagName("number");
					var languages = response_XML.getElementsByTagName("lang");
					var credits = response_XML.getElementsByTagName("credit");
					var balances = response_XML.getElementsByTagName("balance");
					var limits = response_XML.getElementsByTagName("limit");
					var statuses = response_XML.getElementsByTagName("status");
					var levels = response_XML.getElementsByTagName("level");
					var isCreditAwards = response_XML.getElementsByTagName("isCreditAward");
					var isInvitationAdsOuts = response_XML.getElementsByTagName("isInvitationAdsOut");
					var isBlackLists = response_XML.getElementsByTagName("isBlackList");
					userName = userNames[0].firstChild.nodeValue;
					phoneNumber = phoneNumbers[0].firstChild.nodeValue;
					language = languages[0].firstChild.nodeValue;
					credit = credits[0].firstChild.nodeValue;
					balance = balances[0].firstChild.nodeValue;
					limit = limits[0].firstChild.nodeValue;
					userStatus = statuses[0].firstChild.nodeValue;
					if(userStatus == "getStatusError") userStatus ="&nbsp;";
					userLevel = levels[0].firstChild.nodeValue;
					userIsCreditAward = isCreditAwards[0].firstChild.nodeValue;
					userIsInvitationAdsOut = isInvitationAdsOuts[0].firstChild.nodeValue;
					userIsBlackList = isBlackLists[0].firstChild.nodeValue;
					loginFromChina(userName, phoneNumber, language,credit, balance,limit, userStatus, userLevel, userIsCreditAward, userIsInvitationAdsOut, userIsBlackList);
					//added by thinkersoft
					create_cookie(countrycode_cookie_name, document.getElementById("login_countryCode").value);
					create_cookie(phonenumber_cookie_name, document.getElementById("login_phoneNumber").value);
					break;
				//Invalid case
				case 2:
					alert('phone number or password error');
					break;
				//Limitation
				case 3:
					alert('You can\'t try to login so frequently, please try later!');
					break;
			}
			initContactList();
		} else {
			alert('Network error');//<fmt:message key="text.connection.error" />');
		}
	}
}
function loginFromOtherCountry(userName, phoneNumber, language,credit, balance,limit, status, level, isCreditAward, isInvitationAdsOut, isBlackList){
	currentLoginUserName = userName;
	currentLoginUserPhoneNumber = phoneNumber;
	currentLoginUserLanguage = language;
	currentLoginUserCredit = credit;
	currentLoginUserBalance = balance;
	currentLoingUserLimit = limit;
	$('loginStatePanel_from').innerHTML = 'From '+language;
    if(credit == 'true'){
		$('credit_info_id').style.display = 'block';
		if(limit == 'false')
			$('credit_info_id').innerHTML = '<font color="#6a98d6">Your Zozoc Credit is '+balance+'</font>';
		else
			$('credit_info_id').innerHTML = '<font color="#6a98d6">Your Zozoc Credit is</font> <font color="#ef6000">'+balance+'</font>';
	}else
		$('credit_info_id').style.display = 'none';
	loginWithAllFunctionAvailable(userName, phoneNumber, 'English');
	loginWithInfo(userName, phoneNumber, status, credit);
	loginWithDashBoard(status, level, isCreditAward, isInvitationAdsOut, isBlackList);

}
function loginFromChina(userName, phoneNumber, language,credit, balance,limit, status, level, isCreditAward, isInvitationAdsOut, isBlackList){
	currentLoginUserName = userName;
	currentLoginUserPhoneNumber = phoneNumber;
	currentLoginUserLanguage = language;
	currentLoginUserCredit = credit;
	currentLoginUserBalance = balance;
	currentLoingUserLimit = limit; 
	$('loginStatePanel_from').innerHTML = 'From '+language;
    if(credit == 'true'){
		$('credit_info_id').style.display = 'block';
		if(limit == 'false')
			$('credit_info_id').innerHTML = '<font color="#6a98d6">Your Zozoc Credit is '+balance+'</font>';
		else
			$('credit_info_id').innerHTML = '<font color="#6a98d6">Your Zozoc Credit is</font> <font color="#ef6000">'+balance+'</font>';
	}else
		$('credit_info_id').style.display = 'none';
	loginWithAllFunctionAvailable(userName, phoneNumber, 'Chinese');
	loginWithInfo(userName, phoneNumber, status, credit);
	loginWithDashBoard(status, level, isCreditAward, isInvitationAdsOut, isBlackList);
}

function loginWithInfo(userName, phoneNumber, status, credit)
{
  $('ud_name').innerHTML = userName;
  $('ud_phone').innerHTML = phoneNumber;
  $('ud_status').innerHTML = status;
  $('ud_credit').innerHTML = credit;
  $('ud2_name').innerHTML = userName;
  $('ud2_status').innerHTML = status;
  $('ud2_credit').innerHTML = credit;
  $('creditscountrycode').value = document.getElementById("login_countryCode").value;
}

function loginWithDashBoard(status, level, isCreditAward, isInvitationAdsOut, isBlackList)
{
	if(level == 0){
		$('user_status_info').innerHTML = 'You can enjoy the following services if you become VIP. Details at our official forum: <br/>1.Transfer credits to friends <br/>2. Signature';
	}else{
		$('user_status_info').innerHTML = status + ' User Rights:';
	}
	if(isCreditAward == 'true'){
		$('credits_award').style.display = 'block';
		$('blacklist').style.display = 'block';
	}else{
		$('credits_award').style.display = 'none';
		$('blacklist').style.display = 'none';
	}
	if(isInvitationAdsOut == 'true'){
		$('invitation_ads').style.display = 'block';
	}else{
		$('invitation_ads').style.display = 'none';
	}
	if(isBlackList == 'true'){
		$('blacklist').style.display = 'block';
	}else{
		$('blacklist').style.display = 'none';
	}
}

function loginWithAllFunctionAvailable(userName, phoneNumber, language){
	cookiesForUserPhoneNumber = phoneNumber;
	//document.body.id = 'bodyInnerPage';
	$('menu').style.visibility = 'visible';//changed for zozoc363
	$('notLoginStatePanel').style.display = 'none';
	$('loginStatePanel').style.display = 'block';
	$('loginStatePanel_face1').src = '/'+phoneNumber+"_face.face";
	$('loginStatePanel_face2').src = '/'+phoneNumber+"_face.face";	
	onClickPageSwitch('zmoney');
	$('loginStatePanel_phoneNumber1').innerHTML = phoneNumber;
	$('loginStatePanel_phoneNumber2').innerHTML = phoneNumber;	
	$('loginStatePanel_name1').innerHTML = userName;
	$('loginStatePanel_name2').innerHTML = userName;	
	var languageSelect = $('loginStatePanel_language');
	switch(language){
		case 'Chinese':
			languageSelect.selectedIndex = 0;
			break;
		case 'English':
			languageSelect.selectedIndex = 1;
			break;
	}
	initPhoneBook(userName, phoneNumber, language);
	threadForReceiveMessages = setInterval('getMessageFromServer()', 20000);
}
//------------------------------------------------

//Logout
function logout(){
	document.body.id = 'bodyHome';
	$('menu').style.visibility = 'visible';
	$('notLoginStatePanel').style.display = 'block';
	$('loginStatePanel').style.display = 'none';
	$('messageSendingPanel').style.display = 'none';	
	onClickPageSwitch('home');
	sendHttpRequest("webLogout.do",'post','', null);
	clearInterval(threadForReceiveMessages);
	destroyChatPanel();
}

function destroyChatPanel(){
	var chatBoxTabs = $('chatBoxTabs');
	var chatBoxContent = $('chatBoxContent');
	var phoneBookList = document.getElementById("contact_list_ul");
	chatBoxTabs.innerHTML = "";
	chatBoxContent.innerHTML = "";
	phoneBookList.innerHTML = "";
}
//------------------------------------------------

//calculate saving
function calc(monthlySaving, smsPrice, dailySmsCount){
	($(monthlySaving)).value = (parseFloat(($(smsPrice)).value) - 1) * parseFloat(($(dailySmsCount)).value) * 30 / 100;
}
//------------------------------------------------

//Invite friends with phone number or email
function invite(phoneNumberOrEmail, userName){
	var queryString = "phoneNumberOrEmail=" + phoneNumberOrEmail;
	queryString += '&userName=' + userName;
	sendHttpRequest("invite.do",'post',queryString,inviteHandler);
}

function inviteHandler(){
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var result = parseInt(http_request.responseText);
			switch(result){
				//Success
				case 0:
					inviteSuccess();
					break;
				//Invalid input
				case 1:
					inviteFailInvalidInput();
					break;
				//Target user is our registed user already
				case 2:
					alert('The phone number is already our registed user!');
					break;
				//Sender reached limitation
				case 3:
					alert('You can\'t send more invite request today!');
					break;
				//Receiver reached limitation
				case 4:
					alert('The phone number have been invited today!');
					break;
				//Default case
				default:
					defaultError(result);
					break;
			}
		}
	}
}
function inviteSuccess(){
	alert('Invite success!');
}
function inviteFailInvalidInput(){
	alert('Invite fail, invalid input!');
}
//------------------------------------------------

//Operation for default error
function defaultError(code){
	switch(code){
		//Need login
		case 252:
			alert('You need login!');
			break;
		//Have been kick out
		case 253:
			alert('You have been logged off.');
			break;
		//Server error
		case 255:
			alert('Server error!');
			break;
		default:
			alert('Unknow reason error!');
			break;
	}
}
//------------------------------------------------

//Init phone book
//------------------------------------------------


//Send messages
function sendMessageToServer(text, contacter){
	var queryString = 'contacter=' + contacter;
	queryString = queryString + '&text=' + text;
	sendHttpRequest('sendMessageToServer.do', 'post', queryString , sendMessageToServerHandler);
}

function sendMessageToServerHandler(){
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var responseXML = http_request.responseXML;
			var result = responseXML.getElementsByTagName("Result")[0].firstChild.nodeValue;
			switch(result){
				//Default case
				case 'Fail':
					sendMessageToServerFail();
					break;
				default :
				    sendHttpRequest('user_credit_info.do', 'post', '', accountInfoHandler);
			}
		}
	}
}

function sendMessageToServerFail(){
	//TODO
}
//------------------------------------------------


//Receive messages
var threadForReceiveMessages;
function getMessageFromServer(){
	sendHttpRequest('checkSMS.do', 'post', '', getMessageFromServerHandler);
}

function getMessageFromServerHandler(){
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var response = parseInt(http_request.responseText);
			if(response == 252){
				alert('Have not login!');
				logout();
				return;
			} else if(response == 253){
				alert('You have been logged off.');
				logout();
				return;
			}
			var responseXML = http_request.responseXML;
			var contacters = responseXML.getElementsByTagName("PhoneNumber");
			var messages = responseXML.getElementsByTagName("Text");
			var names = responseXML.getElementsByTagName("Username");
			if (contacters.length != messages.length || names.length != messages.length){
				alert("Get wrong message from server");
				return false;
			}
			var contacter = null;
			var message = null;
			var userName = null;
			for(i = 0; i < contacters.length; i++){
				contacter = contacters[i].firstChild.nodeValue;
				message = messages[i].firstChild.nodeValue;
				userName = names[i].firstChild.nodeValue;
				if(contacter.indexOf('+') == 0){
					contacter = contacter.substring(1,contacter.length);
				}
				onReceiveMessage(contacter, userName, message);
			}
		}
	}
}
function onReceiveMessage(phoneNumber, userName, content){
	//allow send message
	if(smsSendTime){
		smsSendTime.setTime(smsSendTime.getTime() - 30001);
	}
	var chatBoxTab = getChatBoxTab(phoneNumber, userName);
	var chatBoxTab_p = document.createElement('p');
	var chatBoxTab_p_innerHTML = '<strong>'+XMLEscape(chatBoxTab.userName)+' : '+'</strong>';
	chatBoxTab_p_innerHTML += XMLEscape(content);
	chatBoxTab_p_innerHTML += '<span> '+new Date().toLocaleString()+'</span>';
	chatBoxTab_p.innerHTML = chatBoxTab_p_innerHTML;
	chatBoxTab.content.appendChild(chatBoxTab_p);
}
//------------------------------------------------


//For select language
function onSelectLanguage(){
	var languageSelect = $('loginStatePanel_language');
	switch(languageSelect.options[languageSelect.selectedIndex].value){
		case 'Chinese':
			changeLanguageToChinese();
			break;
		case 'English':
			changeLanguageToEnglish();
			break;
	}
}

function changeLanguageToChinese(){
	//alert('changeLanguageToChinese');
}

function changeLanguageToEnglish(){
	//alert('changeLanguageToEnglish');
}
//------------------------------------------------

//Init Phone Book
function initPhoneBook(userName, phoneNumber, language){
}
//------------------------------------------------

//For chat box
var currentChatBoxTab;
var smsSendTime;

function onClickSendMessage(){
	// allow only 2 minutes to send one message
	var sendCheck = true;
	
	var loginPanelPhoneNumber = $('loginStatePanel_phoneNumber1');
	if(loginPanelPhoneNumber.innerHTML != '+1000'){
		if(smsSendTime){
			var currentTime = new Date();
			if((currentTime.getTime() - smsSendTime.getTime()) > 30000){
				smsSendTime = currentTime;
			}else{
				sendCheck = false;
			}
		}else{
			smsSendTime = new Date();
		}
	}
	
	if(currentChatBoxTab){
		var chatBoxInputArea = $('chatBoxInputArea');
		if(sendCheck){
			sendMessageToServer(chatBoxInputArea.value, currentChatBoxTab.phoneNumber)
		}
		var chatBoxTab_p = document.createElement('p');
		var chatBoxTab_p_innerHTML = '<strong>'+XMLEscape(currentLoginUserName)+' : '+'</strong>';
		chatBoxTab_p_innerHTML += XMLEscape(chatBoxInputArea.value);
		chatBoxTab_p_innerHTML += '<span> '+new Date().toLocaleString()+'</span>';
		chatBoxInputArea.value = '';
		chatBoxTab_p.innerHTML = chatBoxTab_p_innerHTML;
		currentChatBoxTab.content.appendChild(chatBoxTab_p);
		
		if(!sendCheck){
			var chatBoxTab_p = document.createElement('p');
			var chatBoxTab_p_innerHTML = '<strong>'+'System info'+' : '+'</strong>';
			chatBoxTab_p_innerHTML += 'You speak too fast, please send the message later^-^';
			chatBoxTab_p_innerHTML += '<span> '+new Date().toLocaleString()+'</span>';
			chatBoxInputArea.value = '';
			chatBoxTab_p.innerHTML = chatBoxTab_p_innerHTML;
			currentChatBoxTab.content.appendChild(chatBoxTab_p);
		}
	}
}

function onClickChatBoxTab(phoneNumber, userName){
	var chatBoxTab = getChatBoxTab(phoneNumber, userName);
	if(currentChatBoxTab){
		currentChatBoxTab.className = '';
		currentChatBoxTab.content.style.display = 'none';
	}
	currentChatBoxTab = chatBoxTab;
	if(currentChatBoxTab){
		currentChatBoxTab.className = 'active';
		currentChatBoxTab.content.style.display = 'block';
		onDisplayTargetTag($('scrollForChatBoxTabs'), $('chatBoxTabs'), currentChatBoxTab);
	}
}

function onCloseChatBoxTab(phoneNumber){
	var chatBoxTabs = $('chatBoxTabs');
	var chatBoxContent = $('chatBoxContent');
	var chatBoxTab = $('chatBoxTab'+phoneNumber);
	if(chatBoxTab){
		chatBoxTabs.removeChild(chatBoxTab);
		chatBoxContent.removeChild(chatBoxTab.content);
	}
	inactiveContactor(phoneNumber);
}

function getChatBoxTab(phoneNumber, userName){
	var chatBoxTab = $('chatBoxTab'+phoneNumber);
	if(!chatBoxTab){
		var chatBoxTabs = $('chatBoxTabs');
		chatBoxTab = document.createElement('li');
		chatBoxTab.id = 'chatBoxTab'+phoneNumber;
		chatBoxTab.phoneNumber = phoneNumber;
		if(userName){
			chatBoxTab.userName = userName;
		} else {
			chatBoxTab.userName = 'Unknown';
		}
		chatBoxTab.innerHTML = '<div class="start"></div><span class="content" onClick="JavaScript:activeContactor(\''+phoneNumber+'\');onClickChatBoxTab(\''+ phoneNumber +'\',\''+ userName +'\');">'+chatBoxTab.userName+'</span><div class="close" onClick="JavaScript:onCloseChatBoxTab(\''+phoneNumber+'\')"></div><div class="end"></div>';
		
		var chatBoxContent = $('chatBoxContent');
		var chatBoxTab_content = document.createElement('div');
		chatBoxTab.content = chatBoxTab_content;
		chatBoxTab_content.style.display = 'none';
		chatBoxContent.appendChild(chatBoxTab_content);
		chatBoxTabs.appendChild(chatBoxTab);
	}
	return chatBoxTab;
}
//------------------------------------------------

//Download to mobile
function downloadToCurrentUser(){
	if(currentLoginUserPhoneNumber.indexOf('+') == 0){
		downloadToMobile(currentLoginUserPhoneNumber.substring(1, currentLoginUserPhoneNumber.length));
	} else {
		downloadToMobile(currentLoginUserPhoneNumber);
	}
}

function downloadToMobile(phoneNumber){
	var queryString = "phoneNumber=" + phoneNumber;
	sendHttpRequest('downloadToMobile.do','post',queryString, downloadToMobileHandler);
}

function downloadToMobileHandler(){
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var result = parseInt(http_request.responseText);
			switch(result){
				//Success
				case 0:
					downloadToMobileSuccess();
					break;
				//Fail
				case 1:
					downloadToMobileFail();
					break;
				//Default case
				default:
					defaultError(result);
					break;
			}
		}
	}
}
function downloadToMobileSuccess(){
	alert('A Download-Wap-Push sms has been sent to you mobile phone');
}
function downloadToMobileFail(){
	alert('download fail');
}
//------------------------------------------------

//sms page list and add user commands
var currentContactor = null;
function onAddUser(userName, phoneNumber){
	onAddUserWhenInit(userName, phoneNumber);
	addContactListToServer(phoneNumber, userName);
}

function onAddUserWhenInit(userName, phoneNumber){
	//forbidden illegal input
	if(userName == "" || phoneNumber==""){
		return false;
	}
	
	if(existContactor(phoneNumber)){
		return false;
	}
	//create element	
	var a_m_ul = document.getElementById("contact_list_ul");
	var a_m_li = document.createElement("li");
	var a_m_label = document.createElement("label");
	
	//append elements to parent
	a_m_label.appendChild(document.createTextNode(userName));
	a_m_li.appendChild(a_m_label);
	a_m_li.appendChild(document.createTextNode(phoneNumber));
	
	a_m_ul.appendChild(a_m_li);
	
	//set id and other attributes to be used later 
	a_m_li.id = "contactor_li" + phoneNumber;
	a_m_li.phone_number = phoneNumber;
	a_m_li.user_name = userName;
	a_m_li.onclick = function(){activeContactor(phoneNumber);onClickChatBoxTab(phoneNumber, userName);};
	a_m_ul.scrollIntoView(true);
}

function activeContactor(phoneNumber){
	var a_m_li = $('contactor_li'+phoneNumber);//get
	if(currentContactor != null){
		currentContactor.className='';//anti-activate former active contactor
	} 
	if(a_m_li != null){
		a_m_li.className="active";
		currentContactor = a_m_li;
	}
}

function inactiveContactor(phoneNumber){
	var a_m_li = $('contactor_li'+phoneNumber);
	if(a_m_li){
		a_m_li.className='';
	}
}

function existContactor(phoneNumber){
	var a_m_li = document.getElementById("contactor_li" + phoneNumber);
	if(a_m_li){
		return true;
	}
	else{
		return false;
	}
}

function addContactListToServer(contacter, name){
	var queryString = '' + 'phoneNumber=' + contacter;
	queryString = queryString + "&name=" + name;
	sendHttpRequest("addContactListToServer.do",'post',queryString,null);     // here add servlet
}
//-------------------------------------------------
// initialize contactor list
function initContactList(){
	sendHttpRequest("getInitContactList.do",'post',null,initContactListHandler);           // here add servlet
}

function initContactListHandler(){
	if (http_request.readyState == 4) {
    if (http_request.status == 200) {
    	var response_xml = http_request.responseXML;
    	sendHttpRequest('user_credit_info.do', 'post', '', accountInfoHandler);
      	var contacters = response_xml.getElementsByTagName("Record");
		var phonenumber = null;
		for(i = 0; i < contacters.length; i++){		
			var names = contacters[i].getElementsByTagName("Name");
			var phonenumbers = contacters[i].getElementsByTagName("Phonenumber");
			if(names && phonenumbers){
				if(names.length ==1 && phonenumbers.length == 1){
					var name = names[0].firstChild.nodeValue;
					var phonenumber = phonenumbers[0].firstChild.nodeValue;
					if(phonenumber.indexOf('+') == 0){
						phonenumber = phonenumber.substring(1);
					}
					onAddUserWhenInit(name, phonenumber);
				}
			}				
		}
 	}
	}
}
//------------------------------------------------


//Get password
function getPassword(phoneNumber){
	var queryString = 'phoneNumber=' + phoneNumber;
	sendHttpRequest('userConfirmation.do', 'post', queryString , userConfirmationHandler);
}

function userConfirmationHandler(){
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var responseXML = http_request.responseXML;
			var result = parseInt(responseXML.getElementsByTagName("Result")[0].firstChild.nodeValue);
			switch(result){
				case 0:
					var phoneNumber = responseXML.getElementsByTagName("Result")[1].firstChild.nodeValue;
					retrievePassword(phoneNumber);
					break;
				case 1:
					getUserFail();
					break;
				case 8:
					passwordLimitExceeded();
					break;
			}
		}
	}
}

function getUserFail(){
	alert('User not exist');
}

function retrievePassword(phoneNumber){
	if(confirm('Please confirm your input is: ' + phoneNumber + " Zozoc will send password by SMS to this phone!")){
	var queryString = 'phoneNumber=' + phoneNumber;
	sendHttpRequest('getPassword.do', 'post', queryString , getPasswordHandler);
	} else {
	// Do nothing
	}
}

function getPasswordHandler(){
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var responseXML = http_request.responseXML;
			var result = responseXML.getElementsByTagName("Result")[0].firstChild.nodeValue;
			switch(result){
				//Success
				case 'Success':
					getPasswordSuccess();
					break;
				//Fail
				case 'Fail':
					getPasswordFail();
					break;
					
				case 'Password_Executed_Once':
					passwordLimitExceeded();
			}
		}
	}
}
function getPasswordSuccess(){
	alert('Password has been sent to your mobile phone with sms!');
}
function getPasswordFail(){
	alert('Get password fail!');
}

function passwordLimitExceeded(){
	alert('Get Password Can only be executed once a day');
}
//------------------------------------------------

//InitCookies

function initCookies(){
	if(cookiesForUserPassword && cookiesForUserPhoneNumber){
		if(cookiesForUserPhoneNumber.indexOf('+') == 0){
			cookiesForUserPhoneNumber = cookiesForUserPhoneNumber.substring(1);
		}
		login(cookiesForUserPhoneNumber, cookiesForUserPassword);
	}
}

function XMLEscape(s) {   
    s = s.replace(/&/g, "&amp;");   
    s = s.replace(/>/g, "&gt;");   
    s = s.replace(/</g, "&lt;");   
    s = s.replace(/"/g, "&#34;");   
    s = s.replace(/'/g, "&#39;");   
    return s;   
}   


 function getElementsByName_iefix(tag, name) {
  var elem = document.getElementsByTagName(tag);
  var arr = new Array();
  for(i = 0,iarr = 0; i < elem.length; i++) {
    att = elem[i].getAttribute("name");
    if(att == name) {
      arr[iarr] = elem[i];
       iarr++;
    }
  }
  return arr;
}

function switchPackage( index ) {
  var allPackageContainer = getElementsByName_iefix( 'DIV', 'radioPackageContainer' );
  for( var count=0; count<allPackageContainer.length;count++ ) {
    allPackageContainer[count].style.border = '0px';
    allPackageContainer[count].style.borderLeft = '2px solid #E1E2E7';
    allPackageContainer[count].style.borderRight = '2px solid #E1E2E7';    
  }
  $( 'radioPackageContainer'+index ).style.border = '2px solid #E87429';
}

function selectPackage( index ) {
  $( 'radioPackage'+index ).checked = 'checked';
  currentPackage = index;
}

function loginTipRender( ) {
  if ( http_request.readyState == 4 ) {
    if ( http_request.status == 200 ) {
      var responseXML = http_request.responseXML;
      var getMessageByTagName = function( tagName ) {
  	    return responseXML.getElementsByTagName( tagName )[ 0 ].firstChild.nodeValue;
      }      
      $( 'loginTipTitle' ).innerHTML = getMessageByTagName( 'title' );
      $( 'loginTipRuleTitle' ).innerHTML = getMessageByTagName( 'contenttitle' );
      $( 'loginTipRule' ).innerHTML = getMessageByTagName( 'content' );
      $( 'loginTipButton' ).innerHTML = getMessageByTagName( 'button' );      
    } 
  }
}

function zmoneyPackageRender( ) {
  /**if ( http_request.readyState == 4 ) {
    if ( http_request.status == 200 ) {
      var responseXML = http_request.responseXML;
      var packages = responseXML.getElementsByTagName( 'package' );
      var packagesHTML = '';
      for( var count=0; count<packages.length; count++ ) {
      	var aPackage = packages[ count ];
      	var bgColor = ( count%2==0 ) ? 'white' : '#F6F1F5';
      	packagesHTML += '<div onclick="selectPackage(' + aPackage.getAttribute('id') + ');" id="radioPackageContainer' +  aPackage.getAttribute('id') + '" name="radioPackageContainer" class="zmoneyPackageDetail" onmouseover="switchPackage(' + aPackage.getAttribute('id') + ');">';
      	packagesHTML +=   '<div class="zmoneyPackageDetailInner" style="background:' + bgColor + ';">';
      	packagesHTML +=     '<input onclick="selectPackage(' + aPackage.getAttribute('id') + ');" id="radioPackage' +  aPackage.getAttribute('id') + '" style="position:absolute;left:3px;top:6px;" type="radio" name="radioPackage" value="' + count + '"/>';
      	if(iconFileName == '') {
      		packagesHTML +=     '<span style="position:absolute;left:33px;top:5px;width:18px;">' + '</span>';
      	} else {
      		packagesHTML +=     '<img style="position:absolute;left:33px;top:5px;width:18px;border:0px;" src="zozocNewPage/images/' + aPackage.getAttribute('icon') + '" />';      	
      	}
      	packagesHTML +=     '<span style="position:absolute;left:53px;top:6px;">' + aPackage.getAttribute('name') + '</span>';
      	packagesHTML +=     '<span style="position:absolute;left:130px;top:6px;">' + aPackage.getAttribute('credits') + '</span>';
      	packagesHTML +=     '<span style="position:absolute;left:205px;top:6px;">' + aPackage.getAttribute('sms_available') + '</span>';
      	packagesHTML +=     '<span style="position:absolute;left:300px;top:6px;">' + aPackage.getAttribute('currency_prefix') + aPackage.getAttribute('price') + '</span>';
      	packagesHTML +=     '<span style="position:absolute;left:380px;top:6px;">' + aPackage.getAttribute('currency_prefix') + aPackage.getAttribute('saved') + '</span>';      	      	      	
      	packagesHTML +=   '</div>';      	     
      	packagesHTML += '</div>';      	      	 	
      }
      var tmpHTML = $( 'zmoneyPackage' ).innerHTML;
      $( 'zmoneyPackage' ).innerHTML = tmpHTML.replace( 'loading packages...', packagesHTML );
      switchPackage( responseXML.getElementsByTagName( 'defaultpackage' )[ 0 ].getAttribute('id') );
      selectPackage( responseXML.getElementsByTagName( 'defaultpackage' )[ 0 ].getAttribute('id') );
      
      if ( isUserLogin ) {
      	sendHttpRequest('alipay/login_first_message_en.xml', 'get', '', loginTipRender);
      }      
    } 
  }*/
}

function accountInfoHandler( ) {
  if ( http_request.readyState == 4 ) {
    if ( http_request.status == 200 ) {
      var responseTEXT= http_request.responseText;
      var accountInfo = eval( responseTEXT );
      $( 'accountInfo_zbi' ).innerHTML = accountInfo[ 0 ];
      //$( 'accountInfo_sms' ).innerHTML = accountInfo[ 1 ];
      //$( 'accountInfo_spent' ).innerHTML = accountInfo[ 2 ];
      //$( 'accountInfo_save' ).innerHTML = accountInfo[ 3 ];
      //sendHttpRequest('alipay/payment_packages_en.xml', 'get', '', zmoneyPackageRender);
      selectPackage(1);
    } 
  }
}
//------------------------------------------------

//added by thinkersoft for bugfix 2027
var countrycode_cookie_name = "LoggedInCountryCode_en";
var phonenumber_cookie_name = "LoggedInPhoneNumber_en";
	
function onload_countrycode_phonenumber(){
	var countrycode = get_cookie(countrycode_cookie_name);
	if(countrycode != null){
		document.getElementById("login_countryCode").value = countrycode;
	}
	var phonenumber = get_cookie(phonenumber_cookie_name);
	if(phonenumber != null){
		document.getElementById("login_phoneNumber").value = phonenumber;
	}
}

function create_cookie(name, value){
	if(get_cookie(name) != null){
		return;
	}
	var valid_day = 1;
	var exp_time = new Date();
	exp_time.setTime(exp_time.getTime() + valid_day * 24 * 60 * 60 * 1000);
	document.cookie = name + "=" + value + ";expires=" + exp_time.toGMTString();
}

function get_cookie(name){
	var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
	if(arr != null) return unescape(arr[2]); return null;
}
//end of addition by thinkersoft

function onClickAwardCredits(creditsNumber, countrycode, receiver){
	if(creditsNumber == "" || countrycode == "" || receiver == ""){
		alert("Please input all the require information");
	}
	else{
		var creitesReceiver = countrycode + receiver;
		var queryString = 'creditsCount=' + creditsNumber;
		queryString = queryString + '&creditsReceiver=' + creitesReceiver;
		sendHttpRequest('awardCredits.do', 'post', queryString , awardCreditsHandler);
	}
}

function awardCreditsHandler(){
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var responseXML = http_request.responseXML;
			var result = responseXML.getElementsByTagName("AwardCreditsResult")[0].firstChild.nodeValue;
			switch(result){
				case 'Success':
					alert("Award Credits Successfully");
					var temp = parseInt($('ud_credit').innerHTML) - parseInt($('creditsNumber').value);
					var temp2 = parseInt($('accountInfo_zbi').innerHTML) - parseInt($('creditsNumber').value);
					$('ud_credit').innerHTML = temp + "";
					$('ud2_credit').innerHTML = temp + "";
					$('accountInfo_zbi').innerHTML = temp2 + "";
					break;
				case 'Awarderror':
					alert("Pleas input a positive number");
					break;
				case 'Lackofcredits':
					alert("Your current available credits is not sufficient, you can only award xxx credits to your friends.");
					break;
				case 'Limited':
					alert("You have to buy package");
					break;
				case 'Usernotexsit':
					alert("You can only award the credits to a zozoc user");
					break;
				case 'CreditsLimmition':
					alert("Transfer limit was exceeded for this account");
					break;
				default :
				    alert("Network Failed");
			}
		}
	}
}
-->
