function createCookie(name,value,days) {
        if (days) {
                var date = new Date();
                date.setTime(date.getTime()+(days*24*60*60*1000));
                var expires = "; expires="+date.toGMTString();
        }
        else var expires = "";
        document.cookie = name+"="+value+expires+"; path=/";
}
//createCookie('ppkcookie','testcookie',0) /*0 means cookie gets deleted when browser closes*/

function readCookie(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
                var c = ca[i];
                while (c.charAt(0)==' ') c = c.substring(1,c.length);
                if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
}
//var x = readCookie('ppkcookie1')

function eraseCookie(name) {
        createCookie(name,"",-1);
}
//eraseCookie('ppkcookie')

function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false
		 }

 		 return true					
}

function regUser() {
	document.getElementById('loginbox').style.display ='none';
	document.getElementById('shopping_cart').style.display ='none';
	//document.getElementById('resetpassbox').style.display ='none';
	document.getElementById('regbox').style.display ='block';
}

function resetPass() {
	document.getElementById('regbox').style.display ='none';
	document.getElementById('loginbox').style.display ='none';
	document.getElementById('shopping_cart').style.display ='none';
	document.getElementById('resetpassbox').style.display ='block';
}

function alterPass(){
        var ajaxRequest,username;
	username = document.resetpassform.username.value;
	var password = document.resetpassform.password.value;
	var cpassword = document.resetpassform.cpassword.value;
	if (username == "") {
		alert('Please enter a valid username');
		document.getElementById('username').style.border ='1px solid red;';
		document.getElementById('password').style.border ='1px solid white;';
		document.getElementById('cpassword').style.border ='1px solid white;';
		return;
	}

	if ( password != cpassword || password == "") {
		alert('Please ensure your 2 passwords match.');
		document.getElementById('password').style.border ='1px solid red;';
		document.getElementById('cpassword').style.border ='1px solid red;';
		document.getElementById('username').style.border ='1px solid white;';
		return;
	}

	document.getElementById('over_body').style.display ='none';
        try{
                // Opera 8.0+, Firefox, Safari
                ajaxRequest = new XMLHttpRequest();
        } catch (e){
                // Internet Explorer Browsers
                try{
                        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                        try{
                                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e){
                                // Something went wrong
                                alert("Your browser broke!");
                                return false;
                        }
                }
        }
        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        responseTxt =  ajaxRequest.responseText;
                        if (responseTxt == "_sys_error_") {
				alert("Sorry. Your password could not be reset. Please try again!");
			} else {
				alert("Your password has been reset. Please check your email for further action");
				document.getElementById('regform').style.display ='none';
				document.getElementById('resetpassbox').style.display ='none';
				document.getElementById('loginbox').style.display ='block';
				document.getElementById('shopping_cart').style.display ='block';
				document.getElementById('over_body').style.display ='none';
                        }
                }
        }
        ajaxRequest.open("GET", "../lib/resetpass_webvisitors.php?username="+username+"&new="+password, true);
        ajaxRequest.send(null);
}

function registerUser() {
	var username = document.regform.formuser.value;
	var password = document.regform.formpass.value;
	var cpassword = document.regform.formpassconfirm.value;
	var title = document.regform.title.value;
	var fullname = document.regform.fullname.value;
	var email = document.regform.email.value;
	var telephone = document.regform.telephone.value;
	var mobile = document.regform.mobile.value;
	var interest = document.regform.interest.value;
	var reference = document.regform.reference.value;
        var ajaxRequest;

	if (username == "") {
		alert('Please enter a valid username');
		document.getElementById('formuser').style.border ='1px solid red;';
		document.getElementById('formpass').style.border ='1px solid white;';
		document.getElementById('formpassconfirm').style.border ='1px solid white;';
		document.getElementById('email').style.border ='1px solid white;';
		return;
	}

	if ( password != cpassword || password == "") {
		alert('Please ensure your 2 passwords match.');
		document.getElementById('formpass').style.border ='1px solid red;';
		document.getElementById('formpassconfirm').style.border ='1px solid red;';
		document.getElementById('email').style.border ='1px solid white;';
		document.getElementById('formuser').style.border ='1px solid white;';
		return;
	}
	
	if (echeck(email)==false){
		alert('Please enter a valid email address');
		document.getElementById('formuser').style.border ='1px solid white;';
		document.getElementById('formpass').style.border ='1px solid white;';
		document.getElementById('formpassconfirm').style.border ='1px solid white;';
		document.getElementById('email').style.border ='1px solid red;';
		return;
	}

	document.getElementById('over_body').style.display ='block';

        try{
                // Opera 8.0+, Firefox, Safari
                ajaxRequest = new XMLHttpRequest();
        } catch (e){
                // Internet Explorer Browsers
                try{
                        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                        try{
                                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e){
                                // Something went wrong
                                alert("Your browser broke!");
                                return false;
                        }
                }
        }
        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        responseTxt =  ajaxRequest.responseText;
                        if ( responseTxt == "registered") {
				document.getElementById('regform').style.display ='none';
				document.getElementById('regbox').style.display ='none';
				document.getElementById('resetpassbox').style.display ='none';
				document.getElementById('loginbox').style.display ='block';
				document.getElementById('shopping_cart').style.display ='block';
				document.getElementById('over_body').style.display ='none';
				alert('You have been registered. Please check your email to complete your registration.');
                        } else {
				document.getElementById('over_body').style.display ='none';
				alert('The username you are trying to use has been taken. Please try another username.');
			}
                }
        }
        ajaxRequest.open("GET", "../lib/register_core.php?username="+username+"&password="+password+"&fullname="+fullname+"&title="+title+"&email="+email+"&telephone="+telephone+"&mobile="+mobile+"&interest="+interest+"&reference="+reference+"&from=", true);
        ajaxRequest.send(null);
}

function checkUsername(){
        var ajaxRequest,username;
        username = document.regform.formuser.value;

        try{
                // Opera 8.0+, Firefox, Safari
                ajaxRequest = new XMLHttpRequest();
        } catch (e){
                // Internet Explorer Browsers
                try{
                        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                        try{
                                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e){
                                // Something went wrong
                                alert("Your browser broke!");
                                return false;
                        }
                }
        }
        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        responseTxt =  ajaxRequest.responseText;
                        if (responseTxt == "_nouser_reg_on_sys") {
				document.getElementById('nousername').style.display ='block';
				document.getElementById('usernametaken').style.display ='none';
			} else {
				document.getElementById('nousername').style.display ='none';
				document.getElementById('usernametaken').style.display ='block';
                        }
                }
        }
        ajaxRequest.open("GET", "../lib/checkanswer.php?username="+username, true);
        ajaxRequest.send(null);
}

function retrieveSavedCartItems(){
	var user = readCookie('loggedinuser');
	//var cartitems = readCookie('cart_cookie');
        var ajaxRequest;

        try{
                // Opera 8.0+, Firefox, Safari
                ajaxRequest = new XMLHttpRequest();
        } catch (e){
                // Internet Explorer Browsers
                try{
                        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                        try{
                                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e){
                                // Something went wrong
                                alert("Your browser broke!");
                                return false;
                        }
                }
        }
        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        responseTxt =  ajaxRequest.responseText;
                        document.getElementById('shopping_cart').innerHTML = responseTxt;
                }
        }
        ajaxRequest.open("GET", "../lib/logincartitems.php?username="+user, true);
        ajaxRequest.send(null);
}

function authenticateUser(){
        var ajaxRequest,username,password;
        username = document.loginform.formuser.value;
	password = document.loginform.formpass.value;

        try{
                // Opera 8.0+, Firefox, Safari
                ajaxRequest = new XMLHttpRequest();
        } catch (e){
                // Internet Explorer Browsers
                try{
                        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                        try{
                                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e){
                                // Something went wrong
                                alert("Your browser broke!");
                                return false;
                        }
                }
        }
        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        responseTxt =  ajaxRequest.responseText;
			var brokenstring=responseTxt.split('|||');
                        if (responseTxt == "_sys_error_") {
				alert('The system could not log you in. Please ensure both your username and password are correct.');
			} 
			if (brokenstring[0] == "login") {
				alert('You have been logged in. You can now save your properties.');
				document.getElementById('regform').style.display ='none';
				document.getElementById('resetpassbox').style.display ='none';
				document.getElementById('loginbox').style.display ='none';
				document.getElementById('shopping_cart').style.display ='block';
				document.getElementById('over_body').style.display ='none';
				//document.getElementById('username_box').innerHTML = brokenstring[1];
		
				document.getElementById('loggedin_box').style.display ='block';
				createCookie('loggedinuser',brokenstring[1],0);
				document.getElementById('logged_user').innerHTML = brokenstring[1];
				retrieveSavedCartItems(brokenstring[1]);	
			}
                }
	}
        ajaxRequest.open("GET", "../lib/authuser.php?username="+username+"&up="+password, true);
        ajaxRequest.send(null);
}

function userLogout(){
	eraseCookie('loggedinuser');
	document.getElementById('loggedin_box').style.display ='none';
	
	document.getElementById('regform').style.display ='none';
	document.getElementById('resetpassbox').style.display ='none';
	document.getElementById('loginbox').style.display ='block';
	document.getElementById('shopping_cart').style.display ='block';
}

function checkLoggedInUser(){
	var user = readCookie('loggedinuser');
	if (user != null) {
		document.getElementById('regform').style.display ='none';
		document.getElementById('resetpassbox').style.display ='none';
		document.getElementById('loginbox').style.display ='none';
		document.getElementById('shopping_cart').style.display ='block';
		document.getElementById('over_body').style.display ='none';
		//document.getElementById('username_box').innerHTML = brokenstring[1];

		document.getElementById('loggedin_box').style.display ='block';
		document.getElementById('logged_user').innerHTML = user;
	} 
}

function retrieveCartNoLogin() {
	var cartitems = readCookie('cart_cookie')
	if (cartitems == "") {
		return;
	}
        var ajaxRequest;

        try{
                // Opera 8.0+, Firefox, Safari
                ajaxRequest = new XMLHttpRequest();
        } catch (e){
                // Internet Explorer Browsers
                try{
                        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                        try{
                                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e){
                                // Something went wrong
                                alert("Your browser broke!");
                                return false;
                        }
                }
        }
        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        responseTxt =  ajaxRequest.responseText;
                        document.getElementById('shopping_cart_items').innerHTML = responseTxt;

                }
        }
        ajaxRequest.open("GET", "../captcha/retrievecart.php?cartitems="+cartitems, true);
        ajaxRequest.send(null);
}

function fulldetails(id){
	window.location = "../pages/fulldetails.php?id="+id;
}

function displayMoreInfo(id) {
        document.getElementById('moreinfo').style.display ='block';
        var ajaxRequest;
	document.getElementById('moreinfo').innerHTML = 'loading...';

        try{
                // Opera 8.0+, Firefox, Safari
                ajaxRequest = new XMLHttpRequest();
        } catch (e){
                // Internet Explorer Browsers
                try{
                        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                        try{
                                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e){
                                // Something went wrong
                                alert("Your browser broke!");
                                return false;
                        }
                }
        }
        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        responseTxt =  ajaxRequest.responseText;
                        document.getElementById('moreinfo').innerHTML = responseTxt;
                }
        }
        ajaxRequest.open("GET", "../lib/gethoveritem.php?id="+id, true);
        ajaxRequest.send(null);
}

function removeMoreInfo(id) {
        document.getElementById('moreinfo').style.display ='none';
}

function loadCartNoLogin(){
	var user = readCookie('loggedinuser');
	if (user == "" || user == null) {
		//return;
	}	
	var cartitems = readCookie('cart_cookie');
        var ajaxRequest;

        try{
                // Opera 8.0+, Firefox, Safari
                ajaxRequest = new XMLHttpRequest();
        } catch (e){
                // Internet Explorer Browsers
                try{
                        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                        try{
                                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e){
                                // Something went wrong
                                alert("Your browser broke!");
                                return false;
                        }
                }
        }
        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        responseTxt =  ajaxRequest.responseText;
                        document.getElementById('shopping_cart').innerHTML = responseTxt;
                }
        }
        ajaxRequest.open("GET", "../lib/nologincartitems.php?cartitems="+cartitems, true);
        ajaxRequest.send(null);
}

function removeFromBasket(id){
	
	var user = readCookie('loggedinuser');
	if (user == "" || user == null) {
		//return;
	}	
	var cartitems = readCookie('cart_cookie');
        var ajaxRequest;

        try{
                // Opera 8.0+, Firefox, Safari
                ajaxRequest = new XMLHttpRequest();
        } catch (e){
                // Internet Explorer Browsers
                try{
                        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                        try{
                                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e){
                                // Something went wrong
                                alert("Your browser broke!");
                                return false;
                        }
                }
        }
        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        responseTxt =  ajaxRequest.responseText;
                        //document.getElementById('shopping_cart').innerHTML = responseTxt;
                	eraseCookie('cart_cookie');
			createCookie('cart_cookie',responseTxt,0);
		}
        }
        ajaxRequest.open("GET", "../lib/nologincartdelitems.php?cartitems="+cartitems+"&itemtodel="+id, true);
        ajaxRequest.send(null);
}

function browserReloadFunctions(){
	var user = readCookie('loggedinuser');
	
	checkLoggedInUser();
	loadCartNoLogin();
	
	if (user != null && user != "") {
		retrieveSavedCartItems();
	}
}
