var xmlHttp

function ajaxdisplay (url, load, divdisplay, type) {
	xmlHttp=GetXmlHttpObject ();
	if (xmlHttp==null) {
		alert ("Your browser does not support AJAX!");
		return;
	}
	var url2 = url+"&sid"+Math.random();
	xmlHttp.onreadystatechange=function() {
		stateChanged (load, divdisplay, type);
	};
	xmlHttp.open("GET",url2,true);
	xmlHttp.send(null); 
}
function stateChanged(load, divdisplay, type){

	if(load) {
		try {
			if (xmlHttp.readyState==1){
			document.getElementById(load).style.display="block";
			} if (xmlHttp.readyState==2) {
				document.getElementById(load).style.display="block";
			} if (xmlHttp.readyState==3) {
				document.getElementById(load).style.display="block";
			}
		} catch (e) {
		}
	}
	if (xmlHttp.readyState==4) {
		if(xmlHttp.status == 200){
			if(load) {
				try {
					document.getElementById(load).style.display="none";
				} catch (e) {
				}
			}
			if(type) {
				if (divdisplay) {
					document.getElementById(divdisplay).value=xmlHttp.responseText;
				}
				if(document.readyState) {
					if (document.readyState=="complete") {
					     suggestInput_init();
					}
				} else {
					try {
					  	if (window.captureEvents) {
						    window.captureEvents(Event.LOAD)
//						    window.onload=suggestInput_init();
						}
					}
					catch (e) {
	//				  	suggestInput_init();
					}
				}
			} else {
				if(divdisplay) {
//alert(xmlHttp.responseText);
					document.getElementById(divdisplay).innerHTML=xmlHttp.responseText;				
					var haveFade = checkBrowser();
					if (divdisplay == "del_msg") { // delete message
						var o_b = document.getElementById("o_b").value;
						var o_d = document.getElementById("o_d").value;
						var s_f = document.getElementById("s_f").value;
						var data_search = document.getElementById("data_search").value;
						var type = document.getElementById("type").value;
						var p = document.getElementById("p").value;
						
						var link = 'inc/dinamic_list.php?message&o_b=' + o_b + '&o_d=' + o_d + '&s_f=' + s_f + '&data_search=' + data_search + '&type=' + type + '&p=' + p + '&ajax=1';
						SimpleAJAXCall(link, SimpleAJAXCallback, '', 'admin_messages');
					}
					
					if (document.getElementById("temp_action")) {
						if (document.getElementById("temp_action").value == 'del_cat') {
							var hash = document.getElementById("hash").value;
							var type = document.getElementById("type").value;
							new Ajax.PeriodicalUpdater('admin_catalog', '../inc/request.php?action=get_catalog&type=' + type + '&hash=' + hash, {
								  method: 'get', frequency: 600, decay: 1
							});
						}
					}
					
					if (document.getElementById("my_action")) {
					
						var my_action = document.getElementById("my_action").value;
						
						if (my_action == 'delete_news_photo') { // delete news's photo
							document.getElementById("view_news_photo").style.display = "none";
							document.getElementById("photo_status").innerHTML = "Upload";
							if (haveFade)
								fade('result', 'fadeConfirmRule1,fadeConfirmRule2'); 
						}

						if (my_action == 'change_hot' || my_action == 'remove_news' || my_action == 'delete_news' || my_action == 'delete_book' || my_action == 'delete_topic' || my_action == 'delete_link') {
							if (haveFade)
								fade('result', 'fadeConfirmRule1,fadeConfirmRule2'); 
						}
					
						if (document.getElementById("my_action").value == 'del_photo') { // delete user's avatar
							document.getElementById("user_photo").style.display = "none";
							document.getElementById("ph_title").innerHTML = "<B>Upload photo</B> (available formats: jpg or gif; max size: 5Mb)";						
						}
						if (document.getElementById("my_action").value == 'del_video') { // delete user's video
							document.getElementById("user_video").style.display = "none";
							document.getElementById("vi_title").innerHTML = "<B>Upload video</B> (available format: flv; max size: 20Mb)";						
						}			
						
						if (document.getElementById("my_action").value == 'del_user') { // delete user
							var user = document.getElementById("current_user").value;
							document.getElementById("user_" + user).style.display = "none";	
						}
						if (document.getElementById("my_action").value == 'del_user_page') { // delete user and return to all users list
							location.href="index.php?users&deleted";
						}
					}
				}
				
			}
			return true;
		} else {
			if (load) {
				document.getElementById(load).style.display="none";
			}
			if (type) {
				//document.getElementById(divdisplay).value="HTTP " + xmlHttp.status;
			} else {
				if (divdisplay){
					//document.getElementById(divdisplay).innerHTML="HTTP " + xmlHttp.status;
				}	
			}
	    }
	}
}

function sendRequest(frm, load, divdisplay) {
 
	var oForm = document.forms[frm];
	var sBody = getRequestBody(oForm);

	var oOptions = {
    	method: "post",
        parameters: sBody,
        onSuccess: function (oXHR, oJson) {
            document.getElementById(divdisplay).innerHTML=oXHR.responseText;
						
			if (divdisplay == 'send') {
				document.getElementById("contact_form").style.display = "none";
				document.getElementById("c_message").style.display = "none";
				document.getElementById("c_submit").style.display = "none";
			}
			if (divdisplay == 'send_request') {
				document.getElementById("request_form").style.display = "none";
			}
			if (divdisplay == 'f_email') {
				document.getElementById("newsletter").style.display = "none";
			}
			if (frm == 'all_catalog') {
				var hash = document.getElementById("hash").value;
				var type = document.getElementById("type").value;
				new Ajax.PeriodicalUpdater('admin_catalog', '../inc/request.php?action=get_catalog&type=' + type + '&hash=' + hash, {
					  method: 'get', frequency: 600, decay: 1
				});
				document.getElementById("new_value").value = 'new value';
			}
			if (frm == 'add_user_info') {
				document.getElementById("add_user_form").style.display = 'none';
			}
			if (frm == 'all_info' || frm == 'about_text') {
				var haveFade = checkBrowser();
				if (haveFade)
					fade('result', 'fadeConfirmRule1,fadeConfirmRule2'); 
			}
			
        },
        onFailure: function (oXHR, oJson) {
            alert("An error occurred: " + oXHR.statusText);
        }
    };   
    var oRequest = new Ajax.Request(oForm.action, oOptions);  
}
 
function getRequestBody(oForm) {
 
	var aParams = new Array(); 
     for (var i=0; i < oForm.elements.length; i++) {
         if(oForm.elements[i].type == "radio" || oForm.elements[i].type == "checkbox"){
         	if(oForm.elements[i].type == "radio"){
         		if(oForm.elements[i].checked ) {
         			var sParam = oForm.elements[i].name;
         			sParam += "=";
         		   	sParam += oForm.elements[i].value
//alert(oForm.elements[i].value);
         		}
         	} else {
//alert (oForm.elements[i].value);
				if (oForm.elements[i].value == 'on') {
					var sParam = oForm.elements[i].name;
	         		sParam += "=";
	         		sParam += oForm.elements[i].checked;
				}	
         	}
         } else {
			oForm.elements[i].value = oForm.elements[i].value;
         	var sParam = oForm.elements[i].name;
        	sParam += "=";
         	sParam += encodeURIComponent(oForm.elements[i].value);
         }
//alert(sParam);
         aParams.push(sParam);
     } 
     return aParams.join("&");        
}

function GetXmlHttpObject() {
	var xmlHttp=null;
	try {
		// Firefox, Opera 8.0+, Safari
	  	xmlHttp=new XMLHttpRequest();
	}
	catch (e) {
		// Internet Explorer
	  	try {
	    	xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	    }
	  	catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	    }
	}
	return xmlHttp;
}

function checkContactForm(frm, param, div) {

	var err = true;
	var email = document.getElementById("email").value;
	
	if (document.getElementById("newsletter").checked || drop_spaces(trim(document.getElementById("f_name").value)) != '' || drop_spaces(trim(document.getElementById("organization").value)) != '' || drop_spaces(trim(document.getElementById("email").value)) != '' || drop_spaces(trim(document.getElementById("street").value)) != '' || drop_spaces(trim(document.getElementById("l_name").value)) != '' || drop_spaces(trim(document.getElementById("title").value)) != '' || drop_spaces(trim(document.getElementById("phone").value)) != '' || drop_spaces(trim(document.getElementById("city").value)) != '' || drop_spaces(trim(document.getElementById("zipcode").value)) != '' || drop_spaces(trim(document.getElementById("message").value)) != '' || drop_spaces(trim(document.getElementById("state").value)) != '0') {
		err = true;
	} else {
		document.getElementById("empty").innerHTML = "Please fill in the contact form";
		err = false;
	}
	
	if (document.getElementById("email").value != '') {
		if (!check_email(email)) {
			document.getElementById("email").className = 'error_field';
			document.getElementById("f_email").className = 'form_error';
			document.getElementById("f_email").innerHTML = "Wrong email address";
			err = false;
			if (drop_spaces(trim(document.getElementById("email").value)) == '') {
				document.getElementById("email").value = '';
			}
  		}
	}
	
	if (document.getElementById("newsletter").checked) {
		var email = document.getElementById("email").value;
		if (!check_email(email)) {
			document.getElementById("email").className = 'error_field';
			document.getElementById("f_email").className = 'form_error';
			document.getElementById("f_email").innerHTML = "Wrong email address";
			err = false;
			if (drop_spaces(trim(document.getElementById("email").value)) == '') {
				document.getElementById("email").value = '';
			}
		}
	}

	if (err) {
  		sendRequest(frm, param, div);
	} else {
  		return false;
	}
}

function checkContactsForm(frm, param, div) {

	var err = true;
	var error_class = 'form_error';
	var error_field = 'error_field';
	
	var email1 = document.getElementById("email1").value; 
	if (email1 != '') {
		if (!check_email(email1)) {
			document.getElementById("f_email1").className = error_class;
			document.getElementById("email1").className = error_field;
			err = false;
			
			if (drop_spaces(trim(document.getElementById("email1").value)) == '') {
				document.getElementById("email1").value = '';
			}
	  	}
	}
	

	if (err) {
		show_indicator('result');
  		sendRequest(frm, param, div);
	} else {
		var haveFade = checkBrowser();
		if (haveFade)
			fade('result', 'fadeErrorRule');
		document.getElementById("result").innerHTML = '<span class="form_error">Please check email address</span>';
  		return false;
	}
}

function checkRequestForm (frm, param, div) {
	var err = true;
	var error_class = 'form_error';
	var error_field = 'error_field';
	
	var email = document.getElementById("r_email").value; 

	if (!check_email(email)) {
		document.getElementById("r_email").className = 'error_field';
		document.getElementById("f_r_email").className = 'form_error';
		document.getElementById("f_r_email").innerHTML = "Wrong email address";
		err = false;
		
		if (drop_spaces(trim(document.getElementById("r_email").value)) == '') {
			document.getElementById("r_email").value = '';
		}
  	}
	
	if (err) {
  		sendRequest(frm, param, div);
	} else {
  		return false;
	}
}

function checkNewsletterForm (frm, param, div) {
	var err = true;
	var error_class = 'form_error';
	var error_field = 'error_field';
	
	var email = document.getElementById("email").value; 

	if (!check_email(email)) {
		document.getElementById("email").className = 'error_field';
		document.getElementById("f_email").className = 'form_error';
		document.getElementById("f_email").innerHTML = "Wrong email address";
		err = false;
		
		if (drop_spaces(trim(document.getElementById("email").value)) == '') {
			document.getElementById("email").value = '';
		}
  	}
	
	if (err) {
  		sendRequest(frm, param, div);
	} else {
  		return false;
	}
}

function drop_spaces(str) {
    var newstr = trim(str);
    return newstr.replace(/(\s)+/g, ""); 
}

function trim(str) {
    var newstr = str.replace(/^\s*(.+?)\s*$/, "$1");
    if (newstr == " ") {
        return "";
    }
    return newstr;
}

function check_email(email) {
    var template = /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z])+$/;
    if (template.test(email)) {
        return true;
    }
    return false; 
}

function isFloat (summ) {

	if (summ.length > 0) {
		var template = /^-?\d+[\.|\,]?\d+$/;
		if (template.test(summ)) 
			return true;
		else 
			return false;
	}
	else
		return false;
}

////////////////////////////////////////////////// check is browser is IE6
function checkBrowser () {
	var br_version = 0;	
	var ua = navigator.userAgent;
 	var IEoffset = ua.indexOf("MSIE ");
	var MSIEVersionNumber = parseFloat(ua.substring(IEoffset+5, ua.indexOf(";", IEoffset)));	
		
	if (MSIEVersionNumber == 6)
		br_version = MSIEVersionNumber;
	if (br_version == 0)
		return true;
	else
		return false;
}