function validate(frm) {
//				alert("validating " + objType);
	var elm;
	var objType = "";
	var idxof;
	var res = true;
	var valFeedback = document.getElementById("validationResult");
	valFeedback.innerText = "";
	for(i=0; i<frm.elements.length; i++) {
		elm = frm.elements[i];

		if(elm.id == "cardexpmonth" || elm.id == "cardexpyear") {
			if(elm.selectedIndex == 0) {
				res = false;
				elm.style.border = "1px red solid";
			}
			else 
				elm.style.border = "";

			continue;			
		}	

		idxof = elm.id.indexOf("_");
		if((idxof < 3) && (elm.id.substring(0,3) != "val"))
			continue;
		
		objType = elm.id.substring(3, idxof);

		switch (objType) {
			case "checkbox":
				if(elm.checked) {
					  elm.style.border = "";
				}
				else {
					//border style seems not to be working
					 res = false;
                                        elm.style.border = "1px red solid";
				}
					
				break;
			case "txt":
				if(trim(elm.value) != "") {
					elm.style.border = "";
				} else {
					res = false;
					elm.style.border = "1px red solid";
				}
					
//				alert("validating " + objType);
			break;
			case "phone":
				//alert("validating " + objType);
			break;
			case "mail":
				var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
				if (filter.test(elm.value)) {
					elm.style.border = "";
				} else {
					res = false;
					elm.style.border = "1px red solid";
				}
				//alert("validating " + objType);
			break;
			
		}
	 	//alert (opt.getAttribute('attribute1') + ' ' +opt.getAttribute('rawdata')  )
	}
	if(res) {
		frm.action = frm.action + "?action=send";
		frm.submit();
	} else {
		valFeedback.innerHTML = "<font color='red'>* Please fill out all mandatory fields.</font>";
	}
	//return false;

}

function trim(str) {
	return str.replace(/^\s+|\s+$/g, '') ;
}

function showHideLayer(szDivID, iState) // 1 visible, 0 hidden
{
	
    if(document.layers)	   //NN4+
    {
       document.layers[szDivID].visibility = iState ? "show" : "hide";
    }
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
	var objh = 700;
	var objw = 846;
        var obj = document.getElementById(szDivID);
	objh = parseFloat(objh)/2;
	objw = parseFloat(objw)/2;
	var scrollX = (getScrollXY()[0]);
	var scrollY = (getScrollXY()[1]);
	var offsetCompensate = isIE() ? 0.9 : 3.4;
	obj.style.top = Math.floor(Math.round((document.documentElement.offsetHeight/2)+scrollY))-(objh*offsetCompensate)+'px';
	obj.style.left = Math.floor(Math.round((document.documentElement.offsetWidth/2)+(scrollX))-objw)+'px';

        obj.style.visibility = iState ? "visible" : "hidden";
    }
    else if(document.all)	// IE 4
    {
        document.all[szDivID].style.visibility = iState ? "visible" : "hidden";
    }
}
function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}
function hideGallery() {
	showHideLayer('galleryAdmin',0);
	showHideLayer('galleryDesigntool',0);
	showHideLayer('galleryPrint',0);
	showHideLayer('galleryPPPortal',0);
	showHideLayer('galleryAforms',0);
}


function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
  var rv = -1; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}
function isIE()
{
  var msg = "You're not using Internet Explorer.";
  var ver = getInternetExplorerVersion();

  if ( ver > -1 )
  {
    if ( ver >= 6.0 ) 
      return true;//msg = "You're using a recent copy of Internet Explorer."
    else
      return false;//msg = "You should upgrade your copy of Internet Explorer.";
  }
  return false;
}

function numberOfAttendeesChanged(numberOfAttendees) {
	updateTotalSum(numberOfAttendees);
	setNumberOfAttendeeRows(numberOfAttendees);
}

function setNumberOfAttendeeRows(numberOfAttendees) {
	var tbl = document.getElementById('attendeesTable');
	var numRows = tbl.rows.length;
	if(numRows < numberOfAttendees) {
	while(numRows < numberOfAttendees) {
		var row = tbl.insertRow(numRows++);
		row.innerHTML = "<td align='bottom'> Attendees name no " + numRows + "<br/><input name='name_" + numRows + "' id='valtxt_name_" + numRows + "' type='text' size='45'/></td>"; 
		var td = document.createElement('td');
	}
	}
	else {
		while(numRows > numberOfAttendees) {		
			tbl.deleteRow(numRows-1);
			numRows--;
		}
	}
}

function updateTotalSum(numberOfGuests)
{
     	var totalSumItem = document.getElementById("totalSum");
	totalSumItem.innerHTML = 150 * numberOfGuests;
}



