
var LastErrorField = '';
function CheckString(FieldID,Type,Min,Source,Field1,Field2)
 {
   var Field = $(FieldID);
   
   var FieldText = $(FieldID+"_Text").innerHTML;
   var ok = true;
   var err = "";

   switch (Type)
    { case 'String':
	     if (Field.value.length < Min) 
	      { ok = false;
		      err = FieldText+' must have at least '+Min+' characters';
		    }
	     break;
	    case 'Email':
	     if (!echeck(Field.value)) 
	      { ok = false;
		      err = Field.value+' is not a valid email address';
		    }
	     break;
	  }
   if (ok)
    {
      switch(Source)
       { case 'EQ':
          var VField1 = $(Field1).value;
		      var VField2 = $(Field2).value;
		      if (VField1 != VField2)
		       { ok = false;
		  	     err = $(Field1+"_Text").innerHTML+" and "+$(Field2+"_Text").innerHTML+" must be the same";
	 	       }
		      DrawResult(FieldID,ok,err);
		      break;
	       case 'DB':
		      var url = '/checkDB.php';
		      var pars = "Field="+Field1+"&Tb="+Field2+"&Val="+Field.value; 
		      pars += "&FieldID="+FieldID+"&FieldName="+$(FieldID+"_Text").innerHTML;

		      var myAjax = new Ajax.Request( url, 
		       {
		  	     method: 'get', 
			       parameters: pars, 
			       onComplete: ReturnDBRes
			     });
         break;
         default: DrawResult(FieldID,ok,err);
		   }
    }
   else  DrawResult(FieldID,ok,err);
	 
 }
 
 function ReturnDBRes(originalRequest)
  { var Resp = originalRequest.responseText;
    var RespArray = Resp.split("|");
	DrawResult(RespArray[0],RespArray[1],RespArray[2]);
  }
 
 function DrawError (Error)
  { var ErrorDiv = $('FormError');
    if (Error)
    ErrorDiv.style.display = 'block';
    else
    ErrorDiv.style.display = 'none';
    ErrorDiv.innerHTML = Error;
  }
  
 function DrawResult(FieldID,Res,Error)
  { var IMG="bad";
    var BackColor = "#ffe9e9";
    if (Res==1 || Res==true) 
	   { IMG = "ok"; 
	     BackColor = "#FFF";
	   }
    
    var ImgField = $(FieldID+"_Result");
	  var InputField = $(FieldID);
  	ImgField.innerHTML = '<img src="/images/'+IMG+'.jpg" id="" title="'+Error+'" />';	
    if (Error)
     { //DrawError (Error);
       LastErrorField = FieldID;
     }
    else if (FieldID==LastErrorField)
     { //DrawError (""); 
       LastErrorField = "";
     }
  	InputField.style.background = BackColor;
  	ImgField.style.display = "block";
	
  }

 function DecClock(id, url)  
  {
    var TimerID = $(id);
    var time = parseInt(TimerID.innerHTML);
    if (time==1)
     { window.location = url;
       return true;
     }
    time--;
    TimerID.innerHTML = time;
    setTimeout("DecClock('"+id+"','"+url+"');",1000);
  }
 function GetResponse(originalRequest)
  { 
    var Text = originalRequest.responseText; 
    var RespArray = Text.split(";;");
    var Error = "";
    var Image = "";
    var ok=0;
    switch (RespArray[0])
     {
       case '0': Error = RespArray[1]; Image = "badsetup.jpg"; break;
       case '1': Error = "Your account was setup succesfully!<br /> In <span id=\"Timer\">3</span> seconds you will be redirected to your account!"; Image = "successetup.png"; ok=1; break;       
       case 3:        
       case '3': Error = "Your message has been sent! We will reply very soon. Thanks!"; Image = "successetup.png"; ok=0; break;        
       case '': Error = "Your account was setup succesfully!<br /> In <span id=\"Timer\">3</span> seconds you will be redirected to your account!"; Image = "successetup.png"; ok=1; break;       
       default: Error = "Internal error ocured. Please try again later!"; Image = "wrongssetup.png";
       
     }
     
    var WaitText = $('WaitText');
    WaitText.innerHTML = Error;
    var WaitImg = $('WaitImg');
    WaitImg.src = "/images/"+Image;
    
    if (ok)
     { DecClock('Timer', "account");
     }
  }
  
 function FinalCheck(FormName)
  { 
    if (!LastErrorField) 
     { var FormDiv = $(FormName+"Div");
       var elements = FormDiv.getElementsByTagName("input");
       var params="";
       var sep="";
       for (var i = 0; i < elements.length; i++)
        { 
          if (elements[i].type != 'submit')
           { params += sep + escape(elements[i].name) + "=" + escape(elements[i].value);
             sep = "&";
             //alert (params);
           }
	       }
       var elements2 = FormDiv.getElementsByTagName("textarea");
       for (var i = 0; i < elements2.length; i++)
        { params += sep + escape(elements2[i].name) + "=" + escape(elements2[i].value);
          sep = "&";
	       }
       
       FormDiv.innerHTML = '<img src="/images/wait.gif" class="WaitImg" id="WaitImg" /> ';
       FormDiv.innerHTML += '<div class="WaitText" id="WaitText">Everything is ok... <br />Please wait while your account is beeing setup.</div>';
       var url = '/'+FormName+'.php';
       var myAjax = new Ajax.Request( url, 
        {
          method: 'get', 
          parameters: params, 
          onComplete: GetResponse
        });  
       
     }
    return false;
  }
  
 function checkSubmit(Form) 
  { //var Form = document.getElementByName(FormName);
    //DrawError ("");
	  var elements = Form.getElementsByTagName("input");
    var i;
    for (i = 0; i < elements.length; i++)
     {  
       if (elements[i].type != 'submit')
        { try 
           { elements[i].onblur();
           }
          catch(e) {}
        }
	   }
    var elements2 = Form.getElementsByTagName("textarea");
    for (i = 0; i < elements2.length; i++)
     { try 
        { elements2[i].onblur();
        }
       catch(e) {}       
	   }

    setTimeout("FinalCheck('"+Form.name+"');",2000);
    
    return false;
  }
  
 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;					
	}
