function disableWindow(str){
    var oContainer = document.getElementById('ContentBox');
    var oLoader = document.getElementById('statusLoader');
    var oLoaderCell = document.getElementById('statusLoaderText');
    
    oLoaderCell.innerHTML = str;
    oLoader.style.height = oContainer.clientHeight+'px';
    if(!document.all){
        oLoader.style.width = oContainer.clientWidth+'px';
        oLoaderCell.style.width = oContainer.clientWidth+'px';
        oLoaderCell.style.height = oContainer.clientHeight+'px';
    }
    oLoader.style.display = 'block';    
}

function disableButton(but,str,src){
	var oBut = document.getElementById(but);
	if(oBut.type == 'submit' || oBut.type == 'button'){
		oBut.value = str;
		oBut.disabled = true;
	}else if(oBut.src != ''){
		oBut.src = src;
		oBut.parentNode.href = 'javascript: void(0)';
	}
}
function enableWindow(){
    var oLoader = document.getElementById('statusLoader');
    oLoader.style.display = 'none';
}
function enableButton(but,str,src,href){
	var oBut = document.getElementById(but);
	if(oBut.type == 'submit' || oBut.type == 'button'){
		oBut.value = str;
		oBut.disabled = false;
	}else if(oBut.src != ''){
		oBut.src = src;
		oBut.parentNode.href = href;
	}
}

function showError(text,status){
    if(status == true){
		document.getElementById('errorMsg').innerHTML = text;
        document.getElementById('errorMsg').style.display = 'block';
    }else{
		document.getElementById('errorMsg').innerHTML = '';
        document.getElementById('errorMsg').style.display = 'none';
    }
}

function showFieldsErrors(responce){
    for(formvar in responce){
        if(document.getElementById(formvar)){
			obj = document.getElementById(formvar);
            if(responce[formvar].valid == 'false'){
                obj.className = 'error';
				if(document.all){
						obj.onmouseover = function(){
						showErrorMsg(responce[this.name].msg,event);
					}
				}else{
						obj.onmouseover = function(event){
						showErrorMsg(responce[this.name].msg,event);
					}
				}
				obj.onmouseout = function(){
					hideErrorMsg();
				}
            }else{
                obj.className = '';
				obj.onmouseover = '';
				obj.onmouseout = '';
            }
        }
    }
}

function showErrorMsg(str,e){
    var posx = 0;
    var posy = 0;    
    if (document.all){
        posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
        posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
    }else{
        posx = e.pageX;
        posy = e.pageY;
    }
    var oDiv = document.createElement('DIV');
    oDiv.id='errorAlt';
    oDiv.style.top = posy+20+'px';
    oDiv.style.left = posx+10+'px';
	oDiv.innerHTML = str;
    document.body.appendChild(oDiv);
}
function hideErrorMsg(){
    var oDiv = document.getElementById('errorAlt');
    document.body.removeChild(oDiv);
}

function makeParams(form){
    var oForm = document.getElementById(form);
    var params = '';
    for(i=0;element = oForm.elements[i];i++){
        if(element.type == 'text' || element.type == 'textarea' || element.type == 'hidden' || element.type == 'file' || element.type == 'password'){
            params += element.name+'='+element.value+'&';
        }
        if(element.type == 'radio' || element.type == 'checkbox'){
                if(element.checked == true){
                    params += element.name+'='+element.value+'&';
                }
        }
        if(element.type == 'select-multiple'){
            for(j=0;element.options[j];j++){
                if(element.options[j].selected == true){
                    params += element.name+'='+element.options[j].value+'&';
                }
            }           
        }
        if(element.type == 'select-one'){
            params += element.name+'='+element.options[element.selectedIndex].value+'&';
        }
    }
    return params;
}

function checkForm(form,button,src,formAction){
	if(button){
		var href = document.getElementById(button).parentNode.href;
		var oldSrc = document.getElementById(button).src;
		disableButton(button,'Loading...',src);
	}else{
	    disableWindow('Loading...');
	}

    var oForm = document.getElementById(form);
	
    params = makeParams(form);
	extraParams = new Object();
	extraParams.button = button;
	extraParams.href = href;
	extraParams.src = oldSrc;
	extraParams.form = form;
    var loader = new net.ContentLoader(formAction,validateFormCallBack,null,'POST',params,null,null,null,'TEXT',true,extraParams);
}

function validateFormCallBack(){
	if(this.data){
		eval(this.data);
		if(responce.valid == 'false'){
			showError('Invalid information submited. Please check highlighted information.',true);
			showFieldsErrors(responce);
			location.href = '#top';
			enableButton(this.extraParams.button,'Submit',this.extraParams.src,this.extraParams.href);
		}else{
			document.getElementById(this.extraParams.form).submit();
		}
	}
}