var feedback_form_ob

function feedback_form_class(){
	var _me=this
	this.form=document.forms["feedback_form"]
	this.element_name_list=new Array()
	this.element_default_value_list=new Array()
	
	this.xml_loader_arr=new Array()
	this.xml_loaded_arr=new Array()
	this.xml_doc_arr=new Array()
	
	
	this.setup_interface=function(){
		var elements=_me.form.elements
		for(var i=0;i<elements.length;i++){
			switch(elements[i].type.toLowerCase()){
				case "text":
				case "textarea":
					_me.element_name_list.push(elements[i].name)
					_me.element_default_value_list.push(elements[i].value)
				break;
			}
		}
	}
	this.validate_form=function(){
		var errors=""
		var params=""
		for(var i=0;i<_me.element_name_list.length;i++){
			var is_valid=1
			var val=_me.form.elements[_me.element_name_list[i]].value
			if(val==""){
				is_valid=0
			}else{
				if(val==_me.element_default_value_list[i]){
					is_valid=0
				}else{
					if(_me.element_name_list[i]=="feedback_email"){
						if(val.indexOf("@")==-1 || val.indexOf(".")==-1 || val.indexOf("http://")!=-1){
							is_valid=0
						}else{
							if(val.indexOf("@")!=val.lastIndexOf("@") || val.indexOf(",")!=-1 || val.indexOf(";")!=-1){
								is_valid=0
							}
						}	
					}
				}
			}
			
			if(is_valid==0){
				switch(_me.element_name_list[i]){
					case "feedback_name":
						errors+="Name is required.\n"
					break;
					case "feedback_organisation":
					break;
					case "feedback_email":
						errors+="A valid email address is required.\n"
					break;
					case "feedback_subject":
					break;
					case "feedback_comments":
						errors+="Comments are required.\n"
					break;
				}
			}else{
				switch(_me.element_name_list[i]){
					case "feedback_name":
					case "feedback_organisation":
					case "feedback_subject":
					case "feedback_comments":
						val=escape(val)
					break;
				}
				params+=_me.element_name_list[i]+"="+val+"&"
			}
			
		}
		if(errors!="" || (params.indexOf("http://")!=-1 || params.indexOf("<")!=-1 || params.indexOf("<")!=-1 || params.indexOf("&gt;")!=-1 || params.indexOf("&lt;")!=-1)){
			errors="The feedback can not be submitted\n\n"+errors
	  	}
		if(errors!=""){
			alert(errors)
		}else{
			for(var i=0;i<_me.element_name_list.length;i++){
				_me.form.elements[_me.element_name_list[i]].disabled=1
				_me.form.elements["feedback_submit"].value="Sending..."
				_me.form.elements["feedback_submit"].disabled=1
			}
			_me.load_xml("library/send_feedback_xml.asp","feedback",params)
		}
	}
	this.reset_form=function(){
		for(var i=0;i<_me.element_name_list.length;i++){
			_me.form.elements[_me.element_name_list[i]].value=	_me.element_default_value_list[i]
			_me.form.elements[_me.element_name_list[i]].disabled=0
			_me.form.elements["feedback_submit"].disabled=0
			_me.form.elements["feedback_submit"].value="Submit"
			_me.form.elements["feedback_cancel"].value="Cancel"
		}
	}
	
	this.load_xml=function(thispath,thisname,params){
		
		_me.xml_loaded_arr[thisname]=0
		xmlpth=pthstr+thispath
		//window.open(xmlpth+"?"+params)
		/*@cc_on @*/
		/*@if (@_jscript_version >= 5)
			// JScript gives us Conditional compilation, we can cope with old IE versions.
			// and security blocked creation of the objects.
	
			try {
				_me.xml_loader_arr[thisname] = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					_me.xml_loader_arr[thisname]= new ActiveXObject("Microsoft.XMLHTTP");
				} catch (E) {
					_me.xml_loader_arr[thisname] = false;
				}
			}
	
		/*@end @*/
		
		if (!_me.xml_loader_arr[thisname] && typeof XMLHttpRequest!='undefined') {
			_me.xml_loader_arr[thisname] = new XMLHttpRequest();
		}
		
		if(params==""){
			_me.xml_loader_arr[thisname].open("GET", xmlpth,true);
		}else{
			_me.xml_loader_arr[thisname].open("POST", xmlpth,true);
			_me.xml_loader_arr[thisname].setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		}
	
		

		switch(thisname){
			case "feedback":
				_me.xml_loader_arr[thisname].onreadystatechange=_me.parse_feedback_xml

				break;
		}
		
		
		if(params==""){
			_me.xml_loader_arr[thisname].send(null)
		}else{
			_me.xml_loader_arr[thisname].send(params)
		}
	
	
	}

		
	this.parse_feedback_xml=function(){
		var obname="feedback"
		
		if(_me.xml_loader_arr[obname].readyState==4){
			//alert(_me.xml_loader_arr[obname].responseText)
			if(_me.xml_loader_arr[obname].responseText=="1"){
				_me.form.elements["feedback_submit"].value="Sent"
				_me.form.elements["feedback_cancel"].value="Close"
			}else{
				//alert(_me.xml_loader_arr[obname].responseText)
				popup_ob.hide()	
			}
	
	
		}
	}
}

function submit_feedback(){
	if(typeof feedback_form_ob!="undefined" && !!feedback_form_ob){
		feedback_form_ob.validate_form()
	}
}

function clear_box(thisbox,thistext){
	if(thisbox.value==thistext){
		thisbox.value=""
	}
}
function fill_box(thisbox,thistext){
	if(thisbox.value==""){
		thisbox.value=thistext
	}
}
