/* Some functions * [BEGIN] */

function getCheckedCheckboxesString() {
   inputs = document.getElementsByTagName("input");
	queryString = "";
	for (i=0; i<inputs.length; i++){
		if (inputs[i].type == "checkbox" && inputs[i].id.substr(0,3) == "chk"){
			if (inputs[i].checked == true) {
				queryString += inputs[i].id.substr(3) + ";";
			}
		}
	}
	return queryString = queryString ? queryString.substr(0,queryString.length-1) : false;
}

function showPage (pageName) {
   for (key in pageContent.pages) {
      if (pageContent.pages[key].id == pageName) {
         pageContent.pages[key].style.display = "block";
      }
      else{
         pageContent.pages[key].style.display = "none";
      }
   }
}

function signout () {
   var sendStr = "action=signout";
	sendStr += "&sid=" + getFormElement(pageContent.loginForm, "sid").value;
	if(sendRequest(mainConfigs.method, mainConfigs.core, sendStr) == 4) {
	   var response = xmlhttp.responseText;
	     switch (response) {
			case 'ok':
				alert("You have successfully logged out.");
				deleteCookie("WMSG_USR");
				deleteCookie("WMSG_PASS");
				break;
			case 'failed':
				alert("could not log out ");
				break;
		
			default:
				alert("No response from server.");
		}
	}
}

function signin () {
	var sendStr = "login=" + getFormElement(pageContent.loginForm, "login").value;
	//sendStr += "&password=" + hex_md5(getFormElement(pageContent.loginForm, "password").value);
	sendStr += "&password=" + getFormElement(pageContent.loginForm, "password").value;
	sendStr += "&sid=" + getFormElement(pageContent.loginForm, "sid").value;
	//alert(getFormElement(pageContent.loginForm, "sid").value);
	if(sendRequest(mainConfigs.method, mainConfigs.core, sendStr) == 4) {
	   var response = xmlhttp.responseText;
	   //alert(response);
		switch (response) {
			case 'logged_in':
				alert("You have successfully logged in.");
				setCookie("WMSG_USR", getFormElement(pageContent.loginForm, "login").value);
				setCookie("WMSG_PASS", hex_md5(getFormElement(pageContent.loginForm, "password").value));
				//init();
				//showPage(pageContent.pages[0].id);
				redirect(pageContent.mainPage);
				break;
			case 'wrong_login':
				alert("The login or password is wrong.");
				break;
			case 'already_online':
				alert("sombody currently logging this pass");
				break;
				
			default:
				alert("No response from server.");
		}
	}
}


function logout() {
	deleteCookie("WMSG_USR");
	deleteCookie("WMSG_PASS");
	xmlhttp.abort();
	showPage(pageContent.pages[3].id);
}

function toFirstLetterUpperCase (string) {
	var retString = string.substr(0, 1).toUpperCase() + string.substr(1);
	return retString;
}

function checkCookies () {
	if (getCookie("WMSG_USR") != null && getCookie("WMSG_PASS") != null) {
		//return true;
		if (document.location.toString().match(pageContent.loginPage)) {
			redirect(pageContent.mainPage);
		}
		try{
			showPage(pageContent.pages[3].id);
		}
		catch (error) {
			return null;
		}
	}
	else{
		//return false;
		if (!document.location.toString().match(pageContent.loginPage)) {
			redirect(pageContent.loginPage);
		}
	}
}


function getDateTime () {
	
	if(sendRequest(mainConfigs.method, mainConfigs.core, 'action=datetime&sid='+getCookie('PHPSESSID')) == 4) {
		var xmlResponse = xmlhttp.responseXML.documentElement.getElementsByTagName("datetime")[0];
		var time  = getXMLElementValue(xmlResponse, "time", 0);
		var day   = getXMLElementValue(xmlResponse, "day", 0);
		var month = getXMLElementValue(xmlResponse, "month", 0);
		var pm    = getXMLElementValue(xmlResponse, "pm", 0);
		var sec   = getXMLElementValue(xmlResponse, "sec", 0);
		return [ time, day, month , pm, sec ];
	}
	return null;
}


function setDateTime (dateTime) {
   //alert(dateTime[0])
	pageContent.timeField.innerHTML    = dateTime[0];
	pageContent.weekdayField.innerHTML = dateTime[1];
	pageContent.monthField.innerHTML   = dateTime[2];
	pageContent.pmField.innerHTML   = dateTime[3];
	pageContent.secField.value   = dateTime[4];
}

function setZeros (numString) {
	numString = numString.toString();
	if (numString.length < 2) {
		numString = "0" + numString;
	}
	return numString;
}

function updateDateTime () {
	//Time
	timeArray = pageContent.timeField.innerHTML.split(" : ");
	timeArray[2] = pageContent.secField.value;
	timeArray[2] = timeArray[2].valueOf();
	if (timeArray[0] == 12 && timeArray[1] == 59 && timeArray[2] == 59) {
		newDay = getDateTime();
		setDateTime(newDay);
	}
	else if (timeArray[1] == 59 && timeArray[2] == 59) {
		timeArray[0] = timeArray[0].valueOf();
		timeArray[0]++;
		timeArray[1] = "00";
		timeArray[2] = "00";
	}
	else if (timeArray[2] == 59) {
		timeArray[1] = timeArray[1].valueOf();
		timeArray[1]++;
		timeArray[2] = "00";
	}
	else {
		timeArray[2] = timeArray[2].valueOf();
		timeArray[2]++;
	}
	
	dateTime = [timeArray[0] + " : " + setZeros(timeArray[1]) , 
					pageContent.weekdayField.innerHTML, 
					pageContent.monthField.innerHTML, 
					pageContent.pmField.innerHTML,setZeros(timeArray[2])];
	setDateTime(dateTime);
	
	clearTimeout(datetimeTimeout);
	datetimeTimeout = setTimeout('updateDateTime()', 1000);
}

function getPageByMessageType (messageType, altParam) {
	for (i=0; i<pageContent.pages.length; i++) {
		if (pageContent.pages[i].id.match(messageType)) {
			if (altParam) {
				if (pageContent.pages[i].id.match(altParam)) {
					return pageContent.pages[i];
				}
			}
			else {
				return pageContent.pages[i];
			}			
		}
	}
}
/* Some functions * [END] */
