function createObject()
{
       var msXMLHttp = new Array(
           'Msxml2.XMLHTTP.5.0',
           'Msxml2.XMLHTTP.4.0',
           'Msxml2.XMLHTTP.3.0',
           'Msxml2.XMLHTTP',
           'Microsoft.XMLHTTP'
       );

       var oHttp;

       for (var iProtocol = 0; iProtocol < msXMLHttp.length; iProtocol++)
       {
           try {
               oHttp = new ActiveXObject(msXMLHttp[iProtocol]);
           } catch (sError) {
               oHttp = null;
           }
       }

       if (oHttp == null && typeof XMLHttpRequest != 'undefined')
           oHttp = new XMLHttpRequest();

       return oHttp;
}

function request(sURL, sPOST, sContentEl)
{
   var oHttpObj = createObject(), sContentEl = (sContentEl == undefined) ? "" : sContentEl;

   oHttpObj.open('POST', sURL, true);

   if (sContentEl != "")
   {
      oHttpObj.onreadystatechange = function()
      {
         if (oHttpObj.readyState == 4)
         {
            var oContainer = document.getElementById(sContentEl);
            oContainer.style.display = "";
            oContainer.innerHTML = oHttpObj.responseText;
         }
      }
   }

   oHttpObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   oHttpObj.setRequestHeader("Content-length", sPOST.length);
   oHttpObj.setRequestHeader("Connection", "close");
   oHttpObj.setRequestHeader("Pragma", "");
   oHttpObj.setRequestHeader("Cache-Control", "no-cache");

   oHttpObj.send(sPOST);
}

function updateCart(itemCode) {
	
	var oItemQty = document.getElementById(itemCode);
	
	Qty = oItemQty.value;
	
	request('process.php','cmd=edit&pid='+itemCode+'&qty='+Qty);
}

function rEs(tO) { var i, n; if (!tO) { return false; }
	if (!tO.nodeName) { if (tO.length) for (n=tO.length; n--;) rEs(tO[n]); }
	else tO.parentNode.removeChild(tO);
}

function removeCart(itemId) {
	
	request('process.php','cmd=del&pid='+itemId, 'result');
	
	rEs(document.getElementById(itemId));
}

function alphaNumericCheck(theChar) {

	if (   (theChar < 48) || (theChar > 122) || ((theChar > 57) && (theChar < 65)) || ((theChar > 90) && (theChar < 97))   ) {
		return false;
	} else {
		return true;
	}
}

function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false
		 }

 		 return true					
	}

function IsNumeric(strString)
   //  check for valid numeric strings	
   {
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
}

function validForm(form) {
   for ( var e = 0; e < form.elements.length; e ++ ) {
      var el = form.elements [ e ];
      if ( el.type == 'text' || el.type == 'textarea' || 
         el.type == 'password' || el.type == 'file' ) {
         // check text fields
         if (el.name != 'practice') {
         	if ( el.value == '' ) {
            	alert ( 'Please fill out the ' + el.name + ' field' );
            	el.focus ( );
            	return false;
         	}
         }
      }
      else if ( el.type.indexOf ( 'select' ) != -1 ) {
         // check selectable dropdown menus
         if ( el.selectedIndex == -1 ) {
            alert ( 'Please select a value for ' + el.name );
            el.focus ( );
            return false;
         }
      }
      else if ( el.type == 'radio' ) {
         // check radio button groups
         var group = form [ el.name ];
         var checked = false;
         if ( !group.length ) checked = el.checked;
         else
            for ( var r = 0; r < group.length; r ++ )
               if ( ( checked = group [ r ].checked ) )
            break;
         if ( !checked ) {
            alert ( 'Please check one of the ' + 
            el.name + ' buttons' );
            el.focus ( );
            return false;
         }
      }
      else if ( el.type == 'checkbox' ) {
         // check checkbox groups
         var group = form [ el.name ];
         if ( group.length ) {
            var checked = false;
            for ( var r = 0; r < group.length; r ++ )
               if ( ( checked = group [ r ].checked ) )
            break;
            if ( !checked ) {
               alert ( 'Please check one of the ' + 
               el.name + ' checkboxes' );
               el.focus ( );
               return false;
            }
         }
      }
   }
   return true;
}

function validateForm(cmd) {

	if(cmd == 'firstname')
		{
		
		var oField = document.getElementById('firstname');
		var oDiv = document.getElementById('firstname_image');
		if(!alphaNumericCheck(oField.value))
			{
				oDiv.innerHTML = "<img src='images/cross.png' />";
			} else {
				oDiv.innerHTML = "<img src='images/tick.png' />";
			}	
		}
		
	if(cmd == 'surname')
		{
		
		var oField = document.getElementById('surname');
		var oDiv = document.getElementById('surname_image');
		if(!alphaNumericCheck(oField.value))
			{
				oDiv.innerHTML = "<img src='images/cross.png' />";
			} else {
				oDiv.innerHTML = "<img src='images/tick.png' />";
			}	
		}
		
	if(cmd == 'phone')
		{
		
		var oField = document.getElementById('phone');
		var oDiv = document.getElementById('phone_image');
		if(!IsNumeric(oField.value))
			{
				oDiv.innerHTML = "<img src='images/cross.png' />";
			} else {
				oDiv.innerHTML = "<img src='images/tick.png' />";
			}	
		}
		
	if(cmd == 'fax')
		{
		
		var oField = document.getElementById('fax');
		var oDiv = document.getElementById('fax_image');
		if(!IsNumeric(oField.value))
			{
				oDiv.innerHTML = "<img src='images/cross.png' />";
			} else {
				oDiv.innerHTML = "<img src='images/tick.png' />";
			}	
		}
		
	if(cmd == 'email')
		{
		
		var oField = document.getElementById('email');
		var oDiv = document.getElementById('email_image');
		if(!echeck(oField.value))
			{
				oDiv.innerHTML = "<img src='images/cross.png' />";
			} else {
				oDiv.innerHTML = "<img src='images/tick.png' />";
			}	
		}
		
	if(cmd == 'submit')
		{
		
		var oForm = document.getElementById('quote_form');
		return (validForm(oForm));
		
		}
}

function captcha() {

	var captcha = document.getElementById('captcha');
	captcha.src = 'lib/class_captcha.php?' + Math.random();
	//request('tpl/captcha.tpl', 'foo=' + Math.random(), 'captcha');
	
	//captcha.innerHTML = '<img src="lib/class_captcha.php" />';

}
