//##################################################################################
//## FORM SUBMIT WITH AJAX                                                        ##
//## @Author: Simone Rodriguez aka Pukos <http://www.SimoneRodriguez.com>         ##
//## @Version: 1.2                                                                ##
//## @Released: 28/08/2007                                                        ##
//## @License: GNU/GPL v. 2 <http://www.gnu.org/copyleft/gpl.html>                ##
//##################################################################################
var pid1=0;
function editpageinfo(url) {
    xmlHttp = GetXmlHttpObject();
    if (xmlHttp == null) {
        alert("Your browser does not support AJAX!");
        return;
    }
    xmlHttp.onreadystatechange = stateChangedEPI;
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}

function stateChangedEPI() {
    if (xmlHttp.readyState == 4) {
        document.getElementById("updCaption").innerHTML = xmlHttp.responseText;
    }
}

function updateStaticPage(url,pid) {
    xmlHttp = GetXmlHttpObject();
	pid1=pid;
    if (xmlHttp == null) {
        alert("Your browser does not support AJAX!");
        return;
    }
    xmlHttp.onreadystatechange = stateChangedUSP;
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}

function stateChangedUSP() {
    if (xmlHttp.readyState == 4) {
        document.getElementById("updCaption"+pid1).innerHTML = xmlHttp.responseText;
    }
}

function updateRelProdIDs(url,pid) {
    npid = pid;
    if (npid == 0){
        npid = document.getElementById("lstlspProdID").value;
    }
    if (npid == -1){
        alert('Please select a product from the list.');
    }else {
        xmlHttp = GetXmlHttpObject();
        if (xmlHttp == null) {
            alert("Your browser does not support AJAX!");
            return;
        }
        xmlHttp.onreadystatechange = stateChangedURPI;
        url+='&pid='+npid;
        xmlHttp.open("GET", url, true);
        xmlHttp.send(null);
   }
}

function stateChangedURPI() {
    if (xmlHttp.readyState == 4) {
        document.getElementById("rpidCaption").innerHTML = xmlHttp.responseText;
    }
}

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 xmlhttpPost(strURL,formname,responsediv,responsemsg,deletethisfield,updatethisfield,darkbg) {
    var xmlHttpReq = false;
    var self = this;
    // Xhr per Mozilla/Safari/Ie7
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // per tutte le altre versioni di IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
			// Quando pronta, visualizzo la risposta del form	
			updatepage(self.xmlHttpReq.responseText,responsediv,deletethisfield,updatethisfield,darkbg);
			
        }
		else{
			// In attesa della risposta del form visualizzo il msg di attesa
			updatepage(responsemsg,responsediv,deletethisfield,updatethisfield,darkbg);

		}
    }
    self.xmlHttpReq.send(getquerystring(formname));
}

function getquerystring(formname) {
    var form = document.forms[formname];
	var qstr = "";

    function GetElemValue(name, value) {
        qstr += (qstr.length > 0 ? "&" : "")
            + escape(name).replace(/\+/g, "%2B") + "="
            + escape(value ? value : "").replace(/\+/g, "%2B");
			//+ escape(value ? value : "").replace(/\n/g, "%0D");
    }
	
	var elemArray = form.elements;
    for (var i = 0; i < elemArray.length; i++) {
        var element = elemArray[i];
        var elemType = element.type.toUpperCase();
        var elemName = element.name;
        if (elemName) {
            if (elemType == "TEXT"
                    || elemType == "TEXTAREA"
                    || elemType == "PASSWORD"
					|| elemType == "BUTTON"
					|| elemType == "RESET"
					|| elemType == "SUBMIT"
					|| elemType == "FILE"
					|| elemType == "IMAGE"
                    || elemType == "HIDDEN")
                GetElemValue(elemName, element.value);
            else if (elemType == "CHECKBOX" && element.checked)
                GetElemValue(elemName, 
                    element.value ? element.value : "On");
            else if (elemType == "RADIO" && element.checked)
                GetElemValue(elemName, element.value);
            else if (elemType.indexOf("SELECT") != -1)
                for (var j = 0; j < element.options.length; j++) {
                    var option = element.options[j];
                    if (option.selected)
                        GetElemValue(elemName,
                            option.value ? option.value : option.text);
                }
        }
    }
    return qstr;
}
function updatepage(str,responsediv,deletethisfield,updatethisfield,darkbg){
	if (updatethisfield!='')
	{
			var cadena = str;
			var valores = cadena.split('*_*');	
			document.getElementById(responsediv).innerHTML = valores[0];
			document.getElementById(updatethisfield).innerHTML = valores[1];
			if(darkbg==1)
			{
			jtwindow=dhtmlmodal.open('uep', 'div', responsediv, 'SAM Medical Products', 'width=350px,height=100%;left=0px,top=0px,resize=1,scrolling=0');
			}
	}
	else
	{
		document.getElementById(responsediv).innerHTML = str;	
		
		if(darkbg==1)
			{
			jtwindow=dhtmlmodal.open('uep', 'div', responsediv, 'SAM Medical Products', 'width=350px,height=100%;left=0px,top=0px,resize=1,scrolling=0');
			}
	}
	
	if (deletethisfield!='')
	{
		document.getElementById(deletethisfield).value = '';
	}
}

function RefreshImage(valImageId) {
	var objImage = document.images[valImageId];
	if (objImage == undefined) {
		return;
	}
	var now = new Date();
	
	objImage.src = objImage.src.split('?')[0] + '?x=' + now.toUTCString();
}

function ValidateCaptcha(url,formname,responsediv)
{
		
		// we can use other domain to perform this task, 
		// for example, this page (index.asp) sit in domain www.encelabs.com
		// and captcha.asp sit in www.smartplanetcms.com
		// we can use url as below, this is because we are using cross domain ajax
		// $.getJSON("www.smartplanetcms.com/captcha.asp?validateCaptchaCode=" +  $("#captchacode").val() + "&format=json&jsoncallback=?", function(data){
		
		$.getJSON("captcha.asp?validateCaptchaCode=" +  $("#captchacode").val() + "&format=json&jsoncallback=?", function(data){
		if (data.status == "1")
			{
				//alert("verified and submit.");
				//if (formValidation() == true)
				//{
					xmlhttpPost(url, formname, responsediv, '', 'captchacode', '', 1);
					//$("#form").submit();
				//}
				
				
				result = true;
				
			}
		
			else
			{
				if (data.session == "0")
					RefreshImage("imgCaptcha");
				
				alert("The security code is incorrect. Please try again or try a new image.");
				$("#captchacode").focus();
				document.getElementById(responsediv).innerHTML = '';
		
				result = false;
				
			}


});

		
	
																																					}
																																					
																																			
