var selectedOption = null;

function makeHttpPostRequest(url, params, callback_function, refreshrequired) {

	var number = Math.random();
      var loading = 'Loading.....';
	  
	  params = params + '&n=' + number;
	  
   //eval(callback_function + '(loading)');
   
   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) {}
       }
   }
		
		
		http_request.open("POST", url, true);
		
		//Send the proper header information along with the request
		http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http_request.setRequestHeader("Content-length", params.length);
		http_request.setRequestHeader("Connection", "close");
		
		http_request.onreadystatechange = function() {//Call a function when the state changes.
			if(http_request.readyState == 4 && http_request.status == 200) {
				eval(callback_function + '(http_request.responseText)');
			}
			
			   // this ensures that the page has loaded AND that we require a data refresh
			   if (refreshrequired) {
			   		refreshAfterPost();
			   }
		}
		http_request.send(params);
		return false;
}

function makeHttpRequest(url, callback_function, return_xml, refreshrequired)
{
   
   var loading = 'Loading.....';
   eval(callback_function + '(loading)');
   
   // IE sometimes caches requests, so send a random number with each query
   var number = Math.random();
   var http_request = false;

   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) {
       alert('Unfortunatelly you browser doesn\'t support this feature.');
       return false;
   }
   http_request.onreadystatechange = function() {
       if (http_request.readyState == 4) {
           if (http_request.status == 200) {
               if (return_xml) {
                   eval(callback_function + '(http_request.responseXML)');
               } else {
                   eval(callback_function + '(http_request.responseText)');
               }
			   
			   // this ensures that the page has loaded AND that we require a data refresh
			   if (refreshrequired) {
			   		getData();
			   }
			   
           } else {
               alert('There was a problem with the request.(Code: ' + http_request.status + ')');
           }
       }
   }
   http_request.open('GET', url + '&rand=' + number, true);
   
   http_request.send(null);
   
   return false;

}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

var backImage = new Array();

backImage[0] = "images/camo2.gif";
backImage[1] = "images/pattern17.gif";
backImage[2] = "images/camo.gif";
backImage[3] = "images/flowers.gif";
backImage[4] = "images/pattern18.gif";

function loadBackground(){
	if ( readCookie('safeback') != null ){
		changeBackground(readCookie('safeback'));
	}else{
		changeBackground(4);
	}
}

function changeBackground(image){
	if (document.body){
		document.body.background = backImage[image];
		createCookie('safeback', image, 1);
	}
}

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=/";
}

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;
}

function checkLogin(){
    var doContinue = true;
    var error = null;
        
    if ( document.frmLogin.txtEmail.value == 'enter text...' ){
        doContinue = false;
        error = 'You must enter a username';
    }
    
    if ( document.frmLogin.txtPassword.value == 'enter text...'){
        doContinue = false;
        error = 'You must enter a password';
    }
    
    if ( doContinue == true ){
        document.frmLogin.submit();
    }else{
        alert( error );
    }
}

function checkRegistration(){
    var doContinue = true;
    var error = null;;
    
    if ( document.frmRegister.txtScreenName.value == 'enter text...' ){
        doContinue = false;
        error = 'You must enter a screen name';
    }else if ( document.frmRegister.txtEmail.value == 'enter text...' ){
        doContinue = false;
        error = 'You must enter a username';
    }else if ( document.frmRegister.txtPassword.value == 'enter text...' ){
        doContinue = false;
        error = 'You must enter a password';
    }else if ( document.frmRegister.txtPasswordConfirm.value == 'enter text...' ){
        doContinue = false
        error = 'You must retype a password';
    }else if ( document.frmRegister.txtEmail.value.length < 6 ){
        doContinue = false;
        error = 'Your username must be 6 characters or longer';
    }else if( document.frmRegister.txtPassword.value.length < 6 ){
        doContinue = false;
        error = 'Your pasword must be 6 characters or longer';
    }else if ( document.frmRegister.txtPassword.value != document.frmRegister.txtPasswordConfirm.value ){
        doContinue = false;
        error = 'Your passwords do not match';
    }else if ( document.frmRegister.acceptTerms.checked == false ){
        doContinue = false;
        error = 'You must read and accept the terms and conditions to continue';
    }else if ( document.frmRegister.userSex.checked == false ){
        doContinue = false;
        error = 'You must select your gender to continue';
    }
    
    if ( doContinue == true ){
        document.frmRegister.submit();
    }else {
        alert( error );
    }
}

window.addEvent("load", function () {
	var sidebar = new Element("div", {"id":"sidebar_wrapper"}).adopt($("side_bar")).injectInside(document.body);
	var sidebarWidth = sidebar.scrollWidth;
	var effect = sidebar.effect("width", {duration:400, transition:Fx.Transitions.Quint.easeOut, wait:false});
	sidebar.addEvents({
		"mouseenter": function () {
			effect.start(sidebarWidth);
		},
		"mouseleave": function () {
			if (sidebar.offsetWidth !== 20) effect.start(20);
		}
	});
	if (window.ie6) {
		sidebarWidth = 180;
		sidebar.setStyles({"position": "absolute", "height": window.getHeight(), "right": -1, "top": window.getScrollTop()});
		window.addEvent("scroll", function(){
			sidebar.setStyle("top", window.getScrollTop());
		});
	}
	effect.set(20);
});

function loadStory( story ){
    makeHttpRequest('_stories/' + story + '.php?', 'document.getElementById("' + story + '").innerHTML=');
}

function registerVote(){
    if ( selectedOption == null ){
        alert( 'You must select an option to vote.' );
    }else{
        makeHttpRequest('_ajax/vote.ajax.php?pollid=' + document.frmPoll.pollid.value + '&responseid=' + selectedOption, 'document.getElementById("poll").innerHTML=');
    }
}

function redirect(){
    setTimeout("go_now()", 5000);
}

function go_now(){
    window.location.href = "http://www.safeatlast.org.uk";
}

function switchAchievmentResponse( achID, response ){
    makeHttpRequest('_ajax/achievements.ajax.php?achievementId=' + achID, 'document.getElementById("goalResult").innerHTML=');
}

function loadChangeNumbers(){
    setInterval ( "changeNumbers()", 3000 );
}

function changeNumbers(){
    if ( document.getElementById("safeOne").innerHTML == 'SAFE' ){
        document.getElementById("safeOne").innerHTML= '7233';
    }else{
        document.getElementById("safeOne").innerHTML= 'SAFE';
    }
    
    if ( document.getElementById("safeTwo").innerHTML == 'SAFE' ){
        document.getElementById("safeTwo").innerHTML = '7233';
    }else{
        document.getElementById("safeTwo").innerHTML = 'SAFE';
    }
}


function ShowHelpLayer(){
	document.getElementById("HelpLayer").style.display="block";
}

function HideHelpLayer(){
	document.getElementById("HelpLayer").style.display="none";
	return false;	
}


// Detect Esc key press
function keyPressHandler(e) {
      var kC  = (window.event) ?    // MSIE or Firefox?
                 event.keyCode : e.keyCode;
      var Esc = (window.event) ?   
                27 : e.DOM_VK_ESCAPE // MSIE : Firefox
      if(kC==Esc){
		  location.href = "http://www.google.com/";
		  return false;
	  }
   }