function bookStandViaForm(id,type,space_id,ref){
	location.href = "/dyn/pages/forms/booking/index.shtml?encoded="+encodeToHex('01928salk:'+ref+':'+type+':'+id+':'+space_id+':129073usiojd12093')+'&ref='+ref;
}
//-----------------------------------------------
function break_url(){
	var s = location.href;
	var s1 = s.split("?");
	if (s1.length == 2){
		s = s1[1];
		s1 = s.split("&");
		for (var x=0;x<s1.length ;x++ ){
			var s2 = s1[x].split("=");
			s2[1] = unescape(s2[1]);
			s2[1] = s2[1].replace(/\+/g,' ');
			
			if(s2[0] == 'ref'){
				process_decoded_data(rtnEl('encoded').value,s2[1]);
			}
			
			if(rtnEl(s2[0])) rtnEl(s2[0]).value = s2[1];
		}
	}
	
}
//-----------------------------------------------
function StoreState(frm){
	var data = {};
	for(var x=0;x<frm.elements.length;x++){
		if(frm.elements[x].name.indexOf('F_client.') != -1){
			data[frm.elements[x].name] = (frm.elements[x].type == 'checkbox')?((frm.elements[x].checked)?1:0):frm.elements[x].value;
		}
	}
	_infx.cookie.create({name:'_state',days:0.01,value:_ext.JSON.encode(data)});
}
//-----------------------------------------------
function RestoreState(){
	var state = _ext.JSON.decode(_infx.cookie.read('_state'));
	if(state){
		for(var p in state){
			if(state[p] && rtnEl(p)){
				if(rtnEl(p).type == 'checkbox'){
					rtnEl(p).checked = (state[p])?true:false;
					if(rtnEl(p).onchange) rtnEl(p).onchange();
				}else if(rtnEl(p).type == 'select-one'){
					rtnEl(p).value = state[p];
					if(rtnEl(p).onchange) rtnEl(p).onchange();
				}else{
					rtnEl(p).value = state[p];
				}
			}
		}
	}
}
//-----------------------------------------------
function toggle_stand_references(){
	var elements = rtnEl('verticaledges').getElementsByTagName('div');
	for(var x=0;x<elements.length;x++){
		if(elements[x].id.indexOf('stand-') != -1){
			elements[x].style.display = (elements[x].style.display != 'none')?'none':'block';
		}
	}
}
//-----------------------------------------------
function process_decoded_data(encoded,ref){
	var decoded = decodeFromHex(encoded);
	var bits = decoded.split(':');
	if(bits[1] != ref){
		rtnEl('stand_error').innerHTML = '<b>An error has occured</b><br/>Please use the floorplan to select an alternative stand.';
		rtnEl('dyn_form_submit_btn').innerHTML = "";
	}else{
		var space_id = bits[4];
		var marker_data;
		if(space_id == 6){			//Brighton Pricing Structure
			marker_data = new Array({1:'£395.00'},{17:'£250.00'},{4:'£495.00'},{5:'£250.00'},{6:'£195.00'},{18:'£595.00'},{10:'£300.00'},{11:'£575.00'},{13:'£375.00'},{14:'£350.00'},{15:'£315.00'},{16:'£475.00'},{19:'£275.00'});
			rtnEl('Exhibition').value = 'Brighton';
		}else if(space_id == 2){	//Eastbourne Pricing Structure
			marker_data = new Array({1:'£385.00'},{4:'£475.00'},{5:'£295.00'},{6:'£895.00'},{10:'£280.00'},{11:'£260.00'},{13:'£240.00'},{15:'£225.00'},{18:'£685.00'});
			rtnEl('Exhibition').value = 'Eastbourne';
		}else if(space_id == 5){	//Hastings Pricing Structure
			marker_data = new Array({13:'£175.00',17:'£265.00',5:'£350.00',6:'£750.00',10:'£800.00'});
			rtnEl('Exhibition').value = 'Hastings';
		}

		rtnEl('requested_stand').value = bits[1];
		for(var x=0;x<marker_data.length;x++){
			var y = marker_data[x];
			for(var p in y){
				if(p == bits[2]){
					rtnEl('stand_price').innerHTML = y[p]+"<span style='font-size:12px;'> + VAT</span>";
				}
			}
		}
		
		rtnEl('F_plan_reservation.marker_ref').value = bits[1];
		rtnEl('F_plan_reservation.marker_id').value = bits[3];
		rtnEl('F_plan_reservation.space_id').value = space_id;
		
		rtnEl('F_plan_reservation.marker_type_id').value = bits[2];
	}
	
	//New restore state functionality
	RestoreState();
}
//-----------------------------------------------
function encodeToHex(str){
	var r="";
	var e=str.length;
	var c=0;
	var h;
	while(c<e){
		h=str.charCodeAt(c++).toString(16);
		while(h.length<2) h="0"+h;
		r+=h;
	}
	return r;
}
//-----------------------------------------------
function decodeFromHex(str){
    var r="";
    var e=str.length;
    var s;
    while(e>0){
        s=e-2;
        r=String.fromCharCode("0x"+str.substring(s,e))+r;
        e=s;
    }
    return r;
}
//-----------------------------------------------
