var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();


var errorbox = document.createElement('div');
var parentnode;

function removeElement(obj)
{
	parentnode.removeChild(obj);
	
}

function validator(theform)
{
 
    //regular expressions
    var phoneregex = /^(\d{3}(-*| *)*){2}\d{4}$/;
    var emailregex = /^[^@\s<&>]+@([-a-z0-9A-Z]+\.)+[a-zA-Z]{2,}$/;
    var nameregex = /^([\'a-zA-Z ]+)+$/;
    var videoformats = /^([\'a-zA-Z ]+)+$/;
     //create an error array
    var errorlog = "The following fields appear to be empty or invalid. Please correct and resubmit form.<br><br>";
    var errorflag = false; 
    var elementvalue = new String();
    var objName = "";
    var email = new String();
    var videofile = new String();
    var numofdigits;
    var numbertest;

    //go through each element check they have data
    for (var i=0; i < theform.elements.length; i++)
    {
        elementvalue = theform.elements[i].value;
       
       
       if(theform.elements[i].name=='tel')
       {
        if (!elementvalue.match(phoneregex))
            {
            errorlog+="Contact Number <br> Valid format (US territories) - XXX-XXX-XXXX<br>";
	errorflag = true;
            }
   
        }
     
   else  if((theform.elements[i].name=='firstname')||(theform.elements[i].name=='lastname'))
       {
        if (!elementvalue.match(nameregex))
            {
            errorlog+= theform.elements[i].name+" ";   
		errorflag = true;
            }
   
        }
		
	else  if(theform.elements[i].name=='message')
       {
        if (!elementvalue.match(nameregex))
            {
            errorlog+= "<br>Message field ";   
		errorflag = true;
            }
   
        }
     
     
       else if((theform.elements[i].name)=='email')
       {
        if (!elementvalue.match(emailregex))
            {
            errorlog+='Email Address ';
		errorflag = true;
            }
        else {
            
            email = elementvalue;
            }
            
        }
       
       else if((theform.elements[i].name)=='file')
       {
        if (!elementvalue.match(/\.(flv)|(mpg)|(mov)|(avi)|(mpeg)|(wmv)$/))
            {
            errorlog+='<br>Video format is not supported. Accpted formats are flv, mpg, mov, avi, mpeg, wmv';
		errorflag = true;
            }
        else {
            
            videofile = elementvalue;
            }
            
        }
                     

    }

if (errorflag == true)
{
parentnode = document.getElementById('content');
errorbox.setAttribute('id','formvalerror');

errorbox.style.backgroundColor = '#0d2d77';
errorbox.style.border = "1px white solid";
errorbox.style.width='300px';
errorbox.style.position = 'absolute';
errorbox.style.zIndex = '5';
errorbox.style.marginLeft = '175px';
errorbox.style.top='350px';
errorbox.style.textAlign='center';

	if (theform.name =='videoform')
	{
		errorbox.style.top = '500px';
	}

if ((BrowserDetect.browser == "Explorer"))
{
errorbox.style.marginTop='-200px';
}

errorbox.innerHTML ="<br>" + errorlog + "<br><a href='#' onClick=\"removeElement(errorbox);\"><img border='0' src='cclose.png'></a><br><br>";
parentnode.appendChild(errorbox);
		
}
else {
	if (theform.name =='cform')
			{theform.submit();}
			else if (theform.name =='videoform' )
			{
			//send by ajax to upload video script
			document.getElementById('content').appendChild(progind);
			theform.style.display = 'none';
			pvidform.appendChild(progind);
			//theform.submit();
			}
	}
}


