var timeout	= 500;
var closetimer	= 0;
var ddmenuitem	= 0;

// open hidden layer
function mopen(id)
{
  
	// cancel close timer
	mcancelclosetime();

	// close old layer
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';

	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';

}
// close showed layer
function mclose()
{
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
}

// go close timer
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

// close layer when click-out
document.onclick = mclose; 


function getElementsByClassName(c, t, p)
{
    p = !p ? document : (typeof(p) == 'string' ? document.getElementById(p) : p);
    t = t ? '*' : t;
    
    if (!c) return [];
    
    var list = p.getElementsByTagName(t);
    var els = [];
    var regex = new RegExp('\\b'+c+'\\b', 'i');
    
    for (var i = 0; len = list.length, i < len; i++)
    {
        if (list[i].className.match(regex))
            els.push(list[i]);
    }
    
    return els;
}

var contactFormText = new Array();
    contactFormText["name"]="Contact Name";
    contactFormText["company"]="Company";
    contactFormText["email"]="Email address";
    contactFormText["message"]="Message";

var formFields;

function prefillTextFields(element, textArrayToUse)
{
    var form = document.getElementById(element);
    
    formFields = getElementsByClassName("prefill-tf", "*", form);
    
    for(var i=0;i<formFields.length;i++)
        formFields[i].value = contactFormText[formFields[i].id];
}

//if user hasn't put anything in, then fill it in again with default text
function checkTextField(currentField){
        if(currentField.value==""){
            currentField.value=contactFormText[currentField.id];
            currentField.style.color="#6E7071"
            
        }
        currentField.style.border="1px dashed #A7A9AC"
      
}

function clearTextField(currentField,textArrayToUse){
        if(currentField.value==contactFormText[currentField.id] || currentField.id=="email" && emailBoolean==true){
            currentField.value=""
            currentField.style.color="#C62127"
           currentField.style.border="1px dashed #C62127"
           
        }
}
//validate form fields
var emailBoolean;
function checkFields(form){
    var myForm=form;
    var returnString="Please amend the following: \n \n"
    var validated=true;
    //required fields
    var usersName=myForm.name;   
    var userComment=myForm.message;
    var userEmail=myForm.email;
    var requiredFields=new Array(usersName,userComment,userEmail)
    
    
    //check required fields have been filled in
    for(var i=0;i<requiredFields.length;i++){
	
        if(requiredFields[i].value=="Contact Name" || requiredFields[i].value=="Message" || requiredFields[i].value=="Email address" ){
            returnString+="You haven't entered your " + requiredFields[i].name +"\n";
            validated=false;
        }
        if(requiredFields[i].name=="email" && requiredFields[i].value!="Email address" && requiredFields[i].value!=" " ){
             if(userEmail.value.indexOf('@')==-1 || userEmail.value.indexOf(".")==-1){
                returnString+="You didn't entered a valid email address"
                validated=false;
                emailBoolean=true;
                
                
                  
            }
        }
    }
    
     
    if(validated==false){
        alert(returnString)
        
    }
    return validated
   
}

function clearIncompleteFields(form){
    var myForm=form;
    var unrequiredField=myForm.website;

        if(unrequiredField.value=="Website"){
            unrequiredField.value=" ";
        }
}