langArray2 = new Array();
//javascript error messages 
langArray2[0] = " Sorry login failed ";
langArray2[1] = "your username length has a problem\n";
langArray2[2] = "invalid characters detected in password field\n";
langArray2[3] = "invalid characters detected in username field\n";
langArray2[4] = "your password strength is to low\n";
langArray2[5] = "your password strength";
langArray2[6] = "minimum strength required";
langArray2[7] = "ERROR : INVALID CHARACTERS DETECTED";
langArray2[8] = "ARE ONLY ALLOWED";
langArray2[9] = "your password length has a problem\n";
langArray2[10] = "You need to enter a password or remove the username to continue\n";

XMLHttpRequestObject = false;
if (window.XMLHttpRequest)
{
XMLHttpRequestObject = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP")
}
function showObj(object)
{

var obj = document.getElementById(object);
obj.style.display="block";
}



function hideObj(object)
{
var obj = document.getElementById(object);
obj.innerHTML ="";
obj.style.display="none";
}
function requestForm(form)
  {
	
	var para = new Array();
	for( i = 0; i < form.elements.length;i++)
	     {
			 var elementName = encodeURIComponent(form.elements[i].name)+"="+encodeURIComponent(form.elements[i].value);
			 para.push(elementName);
			 }
	return para.join("&");
	}
function showBox(query,page)
{
if(XMLHttpRequestObject)
       {
var obj = document.getElementById("divSTF");
url = pathToClassifieds+"style/"+page+".php?"+query;
XMLHttpRequestObject.open("GET",url);
XMLHttpRequestObject.onreadystatechange = function()
            {
if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
                {
obj.innerHTML = XMLHttpRequestObject.responseText;
obj.style.display="block";
                 }
            }
XMLHttpRequestObject.send(null);
        }
} 


function resetForm(page)
{
if(XMLHttpRequestObject)
	{
var obj = document.getElementById('divSTF');
url = pathToClassifieds+"style/"+page+".php";
reset="resetForm=true";
		XMLHttpRequestObject.open("POST",url,true);
		XMLHttpRequestObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		XMLHttpRequestObject.onreadystatechange = function()
		{
			if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
			{
				obj.innerHTML = XMLHttpRequestObject.responseText;
			}
		}
		XMLHttpRequestObject.send(reset);
	}
}



function submitSettings(settings)
{
if(XMLHttpRequestObject)
	{
if(document.settings.emailSettings[0].checked)theSetting='emailSetting=0';
if(document.settings.emailSettings[1].checked)theSetting='emailSetting=1';
if(document.settings.emailSettings[2].checked)theSetting='emailSetting=2';
var obj = document.getElementById('divSTF');
url = pathToClassifieds+"style/settings.php";
		XMLHttpRequestObject.open("POST",url,true);
		XMLHttpRequestObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		XMLHttpRequestObject.onreadystatechange = function()
		{
			if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
			{
				obj.innerHTML = XMLHttpRequestObject.responseText;
			}
		}
		XMLHttpRequestObject.send(theSetting);
	}
}

function submitSTF(page)
{
if(XMLHttpRequestObject)
	{
		var obj = document.getElementById('divSTF');
		if(page === "stf")var body = requestForm(document.stf);
		if(page === "contact")var body = requestForm(document.contact);
		if(page === "formMail")var body = requestForm(document.formMail);
		
		url = pathToClassifieds+"style/"+page+".php";
		XMLHttpRequestObject.open("POST",url,true);
		XMLHttpRequestObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		XMLHttpRequestObject.onreadystatechange = function()
		{
			if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
			{
				obj.innerHTML = XMLHttpRequestObject.responseText;
			}
		}
		XMLHttpRequestObject.send(body);
	}
}
function checkInput(div,valid,errorMsg)
{
var obj = document.getElementById(div);
theform = document.signin;
pwfieldL = theform.pw.value.length;
unfieldL = theform.username.value.length;
var GB = "G";
var message = "";
var valid = valid;
if(pwfieldL > 0)
	{
		for (var i=0; i<pwfieldL; i++) 
		{
			value = "" + theform.pw.value.substring(i, i+1);
			if (valid.indexOf(value) == "-1"){message = langArray2[0];break;}
		}
		for (var i=0; i<unfieldL; i++) 
		{
			value = "" + theform.username.value.substring(i, i+1);
			if (valid.indexOf(value) == "-1"){message = langArray2[0];break;}
		}
		username = theform.username.value;
		userpw = theform.pw.value;
		if(username.length < 5 || username.length > 10)
		{
			message = langArray2[0];
			theform.username.value = "";
		}
		if(userpw.length < 8 || userpw.length > 12)
		{
			message = langArray2[0];
			theform.pw.value = "";
		}
		if(message != ""){
	obj.innerHTML = message;
	    }
			else{
			if(message === "")
	{
		secret = theform.secret.value	
		thepw = theform.pw.value	
		md5pw = hex_md5(thepw+secret)
		thepw = "";
		login(md5pw,username)
	}
			}
	}
}
function login(md5,username)
{
	if(XMLHttpRequestObject)
	{
		var obj = document.getElementById('displayChecks');
		var obj2 = document.getElementById('signinMessage');
    var body = "pw="+md5+"&username="+username;
		url = pathToClassifieds+"style/checkLogin.php";
		document.signin.pw.value = "";
		XMLHttpRequestObject.open("POST",url,true);
		XMLHttpRequestObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		XMLHttpRequestObject.onreadystatechange = function()
		{
			if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
			{
			if(XMLHttpRequestObject.responseText.length < 50){obj.innerHTML = XMLHttpRequestObject.responseText;}
				else {
				obj2.innerHTML = XMLHttpRequestObject.responseText;
				obj.innerHTML = "";
				}
			}
		}
		XMLHttpRequestObject.send(body);
	}
}	
function checkForm(form,requiredStrength,validCharacters)
{
username = document.addForm.postVar_8.value.toLowerCase();
password = document.addForm.postVar_9.value.toLowerCase();
pwStrength = document.addForm.postVar_11.value;
if(username.length == 0 && password.length == 0)
    {
document.addForm.postVar_9.value = "";
document.addForm.postVar_8.value = "";
document.addForm.submit();
    }
		
		 
		
    else 
		{
		error = "";
		
		if(password.length == 0)
			 {
			error += langArray2[10];
			 }	
		
		if(username.length > 10 || username.length < 3)	
		   {
			 error += langArray2[1];
			 }
		if(password.length > 10 || password.length < 5)
			 {
			error += langArray2[9];
			 }
		
		if(ICC(password,validCharacters) === "invalid")
			 { 
			 error += langArray2[2];
			 }
		if(ICC(username,"abcdefghijklmnopqrstuvwxyz1234567890") === "invalid")
			 { 
			 error += langArray2[3];
			 }
		if(pwStrength < requiredStrength)
			 { 	 
			 error += langArray2[4];
			 }
		if(error.length == 0) 
			 {
					document.addForm.postVar_12.value = hex_md5(document.addForm.postVar_9.value+document.addForm.postVar_10.value);
					document.addForm.postVar_9.value = "true";
					document.addForm.submit();
			 }
			 else {alert(error);}
		}
}
function unLength(characters,validCharacters)
{
var obj = document.getElementById("unLength");
username = document.addForm.postVar_8.value;
ICC(username,validCharacters);
theUnLength = username.length+1;
if(theUnLength == 11)theUnLength = 10;
obj.innerHTML = theUnLength;
}
function checkStrength(minStrength,validCharacters)
{
var obj = document.getElementById("divS");
var obj2 = document.getElementById("pwLength");
username = document.addForm.postVar_8.value;
password = document.addForm.postVar_9.value;
secret = document.addForm.postVar_10.value;
md5pw = hex_md5(password+secret);
document.addForm.postVar_12.value = md5pw;
thePwLength = password.length+1;
if(thePwLength == 11) thePwLength = 10;
ICC(password,validCharacters);
strength = (passwordStrength(password,username));
document.addForm.postVar_11.value = strength;
obj.innerHTML = "<font style='font-size:12px;font-weight:bold'>"+langArray2[5]+" <img src='"+pathToClassifieds+"images/strength.gif' width=' " + strength + " ' height='10' border=1> " + strength + " <br>"+langArray2[6]+minStrength+" </font>";
obj2.innerHTML = thePwLength;
}
function ICC(characters,validCharacters)
{
var valid = validCharacters;
GB = "";
var obj = document.getElementById("pwICC");
for (var i=0; i<characters.length; i++) 
		{
			value = "" + characters.substring(i, i+1);
			valid.indexOf(value) == -1 ? GB = "B" : GB = "G" ;
			if (GB == "B")break;
		}
		if (GB == "B") 
	      {
				obj.innerHTML = "<div style='font-size:11px;border:dashed 1px #ddd;'>"+langArray2[7]+"<br><b> "+validCharacters+" </b> "+langArray2[8]+"</div>";
        return("invalid");
				}
				if (GB == "G")  {obj.innerHTML = "";}
}
function signout(username)
{
if(XMLHttpRequestObject)
	{
		var obj = document.getElementById('signinMessage');
    var body = "signout=true&username="+username;
		url = pathToClassifieds+"style/checkLogin.php";
		XMLHttpRequestObject.open("POST",url,true);
		XMLHttpRequestObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		XMLHttpRequestObject.onreadystatechange = function()
		{
			if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
			{
				obj.innerHTML = XMLHttpRequestObject.responseText;
			}
		}
		XMLHttpRequestObject.send(body);
	}
}
function passwordStrength(password,username)
{
    score = 0 
    if (password.length < 5 ) { return score }
    if (password.toLowerCase()==username.toLowerCase()) return badPass
    score += password.length * 4
    score += ( checkRepetition(1,password).length - password.length ) * 1
    score += ( checkRepetition(2,password).length - password.length ) * 1
    score += ( checkRepetition(3,password).length - password.length ) * 1
    score += ( checkRepetition(4,password).length - password.length ) * 1
    if (password.match(/(.*[0-9].*[0-9].*[0-9])/))  score += 5 
    if (password.match(/(.*[!,@,#,$,%,^,&,*,?,_,~,=,-,\,:,.,+].*[!,@,#,$,%,^,&,*,?,_,~,=,-,\,:,.,+])/)) score += 5 
    if (password.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/))  score += 10 
    if (password.match(/([a-zA-Z])/) && password.match(/([0-9])/))  score += 15 
    if (password.match(/([!,@,#,$,%,^,&,*,?,_,~,=,-,\,:,.,+])/) && password.match(/([0-9])/))  score += 15 
    if (password.match(/([!,@,#,$,%,^,&,*,?,_,~,=,-,\,:,.,+])/) && password.match(/([a-zA-Z])/))  score += 15 
    if (password.match(/^\w+$/) || password.match(/^\d+$/) )  score -= 10 
    if ( score < 0 )  score = 0 
    if ( score > 100 )  score = 100 
	return score;
}
function checkRepetition(pLen,str) {
    res = ""
    for ( i=0; i<str.length ; i++ ) {
        repeated=true
        for (j=0;j < pLen && (j+i+pLen) < str.length;j++)
            repeated=repeated && (str.charAt(j+i)==str.charAt(j+i+pLen))
        if (j<pLen) repeated=false
        if (repeated) {
            i+=pLen-1
            repeated=false
        }
        else {
            res+=str.charAt(i)
        }
    }
    return res
}

