/*

© 2008 WebTec

http://webtec.com.ua


Базовые функции AJAX запросов Azone ME

ver. 1.3

*/


//GET запрос
function sendRequestGet(id,link) {
	
	waitLoading(id);

	var oXmlHttp = zXmlHttp.createRequest();
    oXmlHttp.open("get", link, true);
    oXmlHttp.onreadystatechange = function () {
		if (oXmlHttp.readyState == 4) {
			if (oXmlHttp.status == 200) {
				layOut(id, oXmlHttp.responseText);
			} else {
				layOut(id, "An error occurred: " + oXmlHttp.statusText); //statusText is not always accurate
			}
		 }            
     };
     oXmlHttp.send(null);

}

//POST запрос
//доступ к данным формы осуществляется либо через имя формы либо через массив forms.
//В этом случае используется первый элемент массива
function sendRequestPost(id,formName) {
	
	if (!formName) {
    	oForm = document.forms[0];
	} else {
		oForm = document.forms[formName];
	}
	
    var sBody = getRequestForm(oForm);
    
    if (!document.getElementById('tm_tm')) {

    	tmbody = '';
    	
    } else {
    	
    	var tmbody = document.getElementById('tm_tm').contentWindow.document.body.innerHTML;
    	tmClose();
    	    
	    if (tmbody != '&nbsp;') {
	    	
	    	tmbody = encodeURIComponent(tmbody);
			tmbody = '&content='+tmbody;
	    	
	    } else {
	    	
	    	tmbody = '';
    	
    	}
    	
    }
    
    if (sBody != false) {
    	
    	waitLoading(id);
    
	    sBody = sBody+tmbody;
	    
	    var oXmlHttp = zXmlHttp.createRequest();
			
	    oXmlHttp.open("post", oForm.action, true);
	    oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	            
		oXmlHttp.onreadystatechange = function () {
			
			if (oXmlHttp.readyState == 4) {
	           	if (oXmlHttp.status == 200) {
	               	layOut(id, oXmlHttp.responseText);
	        	} else {
	        		layOut(id, "An error occurred: " + oXmlHttp.statusText);
				}
			}
	     };
	
		 oXmlHttp.send(sBody);
	 
    }
	 
}

function getRequestForm(oForm) {
    var aParams = new Array();
    var emptCount = 0;
	var pswdError = 0;
	var pass = '_';
            
	for (var i=0 ; i < oForm.elements.length; i++) {
        var sParam = encodeURIComponent(oForm.elements[i].name);
        sParam += "=";
        sParam += encodeURIComponent(oForm.elements[i].value);
    	aParams.push(sParam);
    	
    	if (!(oForm.elements[i].value) && oForm.elements[i].type != 'hidden') {
    		
    		emptCount++;
    		
    	}
		
		if (oForm.elements[i].type == 'password' && pass == '_') {//выполняется проверка введеного пароля
																  //и его подтверждения			
			pass = oForm.elements[i].value;
			
		} else if (oForm.elements[i].type == 'password' && pass != '_') {
			
			if (pass != oForm.elements[i].value || !pass || pass == '') {
				
				pswdError++;
				oForm.elements[i].value = '';
				oForm.elements[i].style.background = 'red';
				oForm.elements[i-1].value = '';
				oForm.elements[i-1].style.background = 'red';
				
			} else {
			
				oForm.elements[i].style.background = '';
				oForm.elements[i-1].style.background = '';
				
			}
			
			pass = '_';
			
		}
    	
    } 
            
	aParams.join("&");
	
	if (pswdError > 0) {
			
			alert('Пароль подтвержден неверно или отправлено пустое значение пароля!');			
			return false;
				
	} else if (emptCount > 0) {
		
		if (confirm("Не все поля заполнены.\nЕсли не знаполнены обязательные поля,\nсистема прервет действие.\nВы действительно хотите продолжить?")) {
			
			return aParams.join("&");
			
		} else {
			
			return false;
			
		}
		
	} else {
	
		return aParams.join("&");
	
	}
			
}

function layOut(id, sText) {

	if (id == 'tm_tm') {
		res = document.getElementById('tm_tm').contentWindow.document.body;
	} else {
		res = document.getElementById(id);
	}
	
	res.innerHTML = sText;
	
	waitLoading();
   
}

function waitLoading(id) {
    
    document.getElementById(id).innerHTML = 'идет загрузка...';
    
}