
function check_order_form(currentRow, totalRows, maxTickets, leftTickets)
{
	validate_integer(document.getElementById("amount_" + currentRow));
	if (document.getElementById("amount_" + currentRow).value > maxTickets)
	{
		document.getElementById("amount_" + currentRow).value = maxTickets;
	} else if (document.getElementById("amount_" + currentRow).value > leftTickets)
	{
		document.getElementById("amount_" + currentRow).value = leftTickets;
	}
	total = 0;
	for (i = 1; i <= totalRows; i++)
	{
		if (!emptyString.test(document.getElementById("amount_" + i).value))
		{
			total += (parseFloat(document.getElementById("price_" + i).innerHTML) * parseFloat(document.getElementById("amount_" + i).value));
		}
	}
	document.getElementById("grand_total").innerHTML = "<strong>&euro; " + total.toFixed(2) + "</strong>";
}

var emptyString = /^\s*$/;
var integer = /^\d+$/;

function validate_integer(field) {
	var newval = field.value.replace(/\D/, "");
	field.value = newval; 
	if (!emptyString.test(field.value) && !integer.test(field.value))
	{
		return false;
	}
	else
	{
		return true;
	}
}


//START OF AJAX


var xmlhttp=false; 
/*@cc_on @*/ 
/*@if (@_jscript_version >= 5) 
// JScript gives us Conditional compilation, we can cope with old IE versions. 
// and security blocked creation of the objects. 
 try { 
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
 } catch (e) { 
  try { 
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
  } catch (E) { 
   xmlhttp = false; 
  } 
 } 
@end @*/ 


if (!xmlhttp && typeof XMLHttpRequest!='undefined') { 
    try { 
        xmlhttp = new XMLHttpRequest(); 
    } catch (e) { 
        xmlhttp=false; 
    } 
} 
if (!xmlhttp && window.createRequest) { 
    try { 
        xmlhttp = window.createRequest(); 
    } catch (e) { 
        xmlhttp=false; 
    } 
} 

function AjaxGetContent(url) { 
    xmlhttp.open("GET", url,false); 
     xmlhttp.send(null); 
     return xmlhttp.responseXML; 
}

function validate(action, element_id, element_error, obligated) {
    target = document.getElementById(element_id);
    if (target.value != '' || obligated == 'true')
    {
	var params = "validate?action="+action+"&value=" + encodeURIComponent(target.value);    
	var validation = AjaxGetContent(params);

	var message = validation.getElementsByTagName("valid")[0].childNodes[0].nodeValue;
	if (message == 'false')
	{
	    var error = validation.getElementsByTagName("error")[0].childNodes[0].nodeValue;
	    setMessageUsingDOM(element_error, message, error); 
	} else
	    setMessageUsingDOM(element_error, 'true', '');
       
    }
    if (target.value == '' && obligated == 'false')
    {
	setMessageUsingDOM(element_error, "true", '');
    }
}

function validateZip(element_id1, element_id2, element_error, obligated) {
    target = document.getElementById(element_id1);
    target2 = document.getElementById(element_id2);
    errorField = element_error;
    if (target.value != '' || target2.value != '' || obligated == 'true')
    {
        var params = "validate?action=zip&value=" + encodeURIComponent(target.value)+'&value2='+encodeURIComponent(target2.value);    
	var validation = AjaxGetContent(params);
	var message = validation.getElementsByTagName("valid")[0].childNodes[0].nodeValue;
	if (message == 'false')
	{
	    var error = validation.getElementsByTagName("error")[0].childNodes[0].nodeValue;
	    setMessageUsingDOM(element_error, message, error);  
	} else
	    setMessageUsingDOM(element_error, "true", '');

    }
    if (target.value == '' && obligated == 'false')
    {
	    setMessageUsingDOM(element_error, "true", '');
    }
    return;
}


function validatePassword(element_id1, element_id2, element_error, obligated) {
    target = document.getElementById(element_id1);
    target2 = document.getElementById(element_id2);
    errorField = element_error;
    if (target.value != '' || target2.value != '' || obligated == 'true')
    {
        var params = "validate?action=password&value=" + encodeURIComponent(target.value)+'&value2='+encodeURIComponent(target2.value);    
	var validation = AjaxGetContent(params);
	var message = validation.getElementsByTagName("valid")[0].childNodes[0].nodeValue;
	if (message == 'false')
	{
	    var error = validation.getElementsByTagName("error")[0].childNodes[0].nodeValue;
	    setMessageUsingDOM(element_error, message, error);  
	} else
	    setMessageUsingDOM(element_error, "true", '');

    }
    if (target.value == '' && obligated == 'false')
    {
	    setMessageUsingDOM(element_error, "true", '');
    }
    return;
}

function validateVat(element_id, country_element_id, element_error, obligated) {
    target = document.getElementById(element_id);
    target2 = document.getElementById(country_element_id);
    errorField = element_error;
    if (target.value != '' || target2.value != '' || obligated == 'true')
    {
        var params = "validate?action=vat&value=" + encodeURIComponent(target.value)+'&value2='+encodeURIComponent(target2.value);    
	var validation = AjaxGetContent(params);
	var message = validation.getElementsByTagName("valid")[0].childNodes[0].nodeValue;
	if (message == 'false')
	{
	    var error = validation.getElementsByTagName("error")[0].childNodes[0].nodeValue;
	    setMessageUsingDOM(element_error, message, error);  
	} else
	    setMessageUsingDOM(element_error, "true", '');

    }
    if (target.value == '' && obligated == 'false')
    {
	    setMessageUsingDOM(element_error, "true", '');
    }
    return;
}

 function setMessageUsingDOM(errorfield, valid, message) {
     var userMessageElement = document.getElementById(errorfield);
     if (valid == "false") {
         userMessageElement.style.color = "red";
	 userMessageElement.style.display="block";
     } else {
	 userMessageElement.style.display="none";
         userMessageElement.style.color = "";
     }
     var messageBody = document.createTextNode(message);
     // if the messageBody element has been created simple replace it otherwise
     // append the new element
     if (userMessageElement.childNodes[0]) {
         userMessageElement.replaceChild(messageBody, userMessageElement.childNodes[0]);
     } else {
         userMessageElement.appendChild(messageBody);
     }
 }






/*************************************************************
* Window Onload Manager (WOM) v1.0
* Author: Justin Barlow - www.netlobo.com
*
* Description:
* The WOM library of functions allows you to easily call
* multiple javascript functions when your page loads.
*
* Usage:
* Add functions to WOM using the womAdd() function. Pass the
* name of your functions (with or without parameters) into
* womAdd(). Then call womOn() like this:
*     womAdd('hideDiv()');
*     womAdd('changeBg("menuopts","#CCCCCC")');
*     womOn();
* WOM will now run when your page loads and run all of the
* functions you have added using womAdd()
*************************************************************/
/*************************************************************
* The womOn() function will set the window.onload function to
* be womGo() which will run all of your window.onload
* functions.
*************************************************************/
function womOn(){
  window.onload = womGo;
}
/*************************************************************
* The womGo() function loops through the woms array and
* runs each function in the array.
*************************************************************/
function womGo(){

  for(var i = 0;i < woms.length;i++)
    eval(woms[i]);
}
/*************************************************************
* The womAdd() function will add another function to the woms
* array to be run when the page loads.
*************************************************************/
function womAdd(func){
  woms[woms.length] = func;
}
/*************************************************************
* The woms array holds all of the functions you wish to run
* when the page loads.
*************************************************************/
var woms = new Array();
