function createAndAppendInputElement(containerElement, inputName, inputValue)
{
	var attr = Array( Array("type", "hidden"), Array("name", inputName), Array("value", inputValue) );
	
	createAndAppendElement(containerElement, "input", attr);
}

function createAndAppendElement(containerElement, tagName, attributes)
{
		var element = document.createElement(tagName);
            
		for(var i = 0; i < attributes.length; i++)
		{
			element.setAttribute(attributes[i][0], attributes[i][1]);
		}
            
            containerElement.appendChild(element);
            return element;
}

function generatePaymentForm(terminal, trtype, amount, currency, description, order, merchant, backref, ps, timestamp, nonce)
{
	
	var containerDiv = document.getElementById("ocs_payment_form");
	
	if (containerDiv)
	{
		var form_onsubmit = "";
		if ( payment_form_submit_event )
		{
			form_onsubmit = "return payment_form_submit_event();";
		}
		
		var progressBar = createAndAppendElement(containerDiv, "img", Array(Array("src", "http://onlinecommercesolution.com/images/progressbar.gif")));
		
		var formElement = createAndAppendElement(containerDiv, "form", Array( Array("id", "payment_form") , Array("name", "payment_form") , Array("method", "POST") , Array("action", "https://egateway.victoriabank.md/cgi-bin/cgi_link") , Array("onsubmit", form_onsubmit) ) );
		
		
		createAndAppendElement(formElement, "input", Array( Array("type", "hidden"), Array("name", "TERMINAL"), Array("value", terminal) ));
		createAndAppendElement(formElement, "input", Array( Array("type", "hidden"), Array("name", "AMOUNT"), Array("value", amount) ));
		createAndAppendElement(formElement, "input", Array( Array("type", "hidden"), Array("name", "CURRENCY"), Array("value", currency) ));
		createAndAppendElement(formElement, "input", Array( Array("type", "hidden"), Array("name", "DESC"), Array("value", desc) ));
		createAndAppendElement(formElement, "input", Array( Array("type", "hidden"), Array("name", "ORDER"), Array("value", order) ));
		createAndAppendElement(formElement, "input", Array( Array("type", "hidden"), Array("name", "MERCHANT"), Array("value", merchant) ));
		createAndAppendElement(formElement, "input", Array( Array("type", "hidden"), Array("name", "BACKREF"), Array("value", backref) ));
		createAndAppendElement(formElement, "input", Array( Array("type", "hidden"), Array("name", "P_SIGN"), Array("value", ps) ));
		createAndAppendElement(formElement, "input", Array( Array("type", "hidden"), Array("name", "TIMESTAMP"), Array("value", timestamp) ));
		createAndAppendElement(formElement, "input", Array( Array("type", "hidden"), Array("name", "NONCE"), Array("value", nonce) ));
		
	}
	
}

var http_request = false;

function OCS_processOrder( )
{
	var containerDiv = document.getElementById("ocs_payment_form");
	
	var form_onsubmit = '';
	
	if (!containerDiv)
	{
		return false;
	}

        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
		//http_request.setRequestHeader("Content-Type", "text/html")
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/html');
                // See note below about this line
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            return false;
        }
        
        var progressBar = createAndAppendElement(containerDiv, "img", Array(Array("src", "http://onlinecommercesolution.com/images/progressbar.gif"), Array("alt", "Processing order"), Array("title", "Processing order, please wait.")));

        var formElement = createAndAppendElement(containerDiv, "form", Array( Array("id", "payment_form") , Array("name", "payment_form") , Array("method", "POST") , Array("action", "https://egateway.victoriabank.md/cgi-bin/cgi_link") , Array("onsubmit", form_onsubmit) ) );
        
        	http_request.onreadystatechange = function() 
        	{ 
			if (http_request.readyState == 4) 
			{
				if (http_request.status == 200) 
				{
					var xmlDoc = http_request.responseXML;
					
					var fields = xmlDoc.getElementsByTagName("PAYMENT_FIELD");
					
					for(var i = 0; i < fields.length; i++ )
					{
						createAndAppendElement(formElement, "input", Array( Array("type", "hidden") , Array("name", fields[i].getAttribute("name")) , Array("value", fields[i].getAttribute("value")) ) );
						
					}
					
					containerDiv.removeChild(progressBar);
					var pay_button = document.getElementById("pay_button");
					if (pay_button)
					{
						document.getElementById("pay_button").style.display = "";
					}
				} 
				else 
				{
					return false;
				}
			}
        	}

        	var url = "/ocs_xml_request.php";
        	
        	var dataContainer = document.getElementById("ocs_xml_request");
        	
        	if (dataContainer)
        	{
        		var params = "ORDER_XML=" + dataContainer.value;
        	}
        	
		http_request.open("POST", url, true);
		
		//Send the proper header information along with the request
		http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http_request.setRequestHeader("Content-length", params.length);
		http_request.setRequestHeader("Connection", "close");
		
		if (http_request.overrideMimeType)
		{
			http_request.overrideMimeType('text/xml');
		}
		http_request.send(params);    
}