function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function validate()
{
	var name = document.getElementById('name');
	var email = document.getElementById('email');
	var subject = document.getElementById('subject');
	var message = document.getElementById('message');
	
	var error = "\n";
	
	if(name.value == '')
	{
		error += "Your name is required.\n";
	}
	
	if(email.value == '')
	{
		error += "Your email is required.\n";
	}
	
	if(message.value == '')
	{
		error += "A message is required.\n";
	}
	
	if(error && error != "\n")
	{
		alert(error + "\n");
		return false;
	}
	
	return true;
}

function check_description(num)
{
	var val = document.getElementById('campaign_name_description');
	var counter = document.getElementById('counter');
	var submit = document.getElementById('submit');
	
    if (val.value.length >= num) 
    {
    	alert("Sorry, you can only use " + num + " characters in the description");
        val.focus();
        return false;
    }
	counter.innerHTML = "Count: " + parseInt(val.value.length);
	return true;
}

function keep_count(item, counter)
{
	var item = document.getElementById(item);
	var counter = document.getElementById(counter);
	
	counter.innerHTML = "Count: " + parseInt(item.value.length);
}

function check_max_chars(item, max, return_val)
{
	var obj = document.getElementById(item);
		
	if (obj.value.length >= max) 
    {
		var str = "Sorry, you can only use " + max + " characters in the description";
		if(return_val)
		{
			return str;
		}
    	alert(str);
        obj.focus();
        return false;
    }
    
	if(return_val)
	{
		return '';
	}
	
    return true;
}

function email_check(emailStr, return_val) 
{
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	
	var str;

	if (matchArray==null) 
	{
		str = "Email address seems incorrect (check @ and .'s)";
		
		if(return_val)
		{
			return str;
		}
		
		alert(str);
		return false;
	}

	var user=matchArray[1];
	var domain=matchArray[2];

	for (i=0; i<user.length; i++) 
	{
		if (user.charCodeAt(i)>127) 
		{
			str = "Ths username contains invalid characters.";
			if(return_val)
			{
				return str;
			}
			
			alert(str);
			return false;
		}
	}

	for (i=0; i<domain.length; i++) 
	{
		if (domain.charCodeAt(i)>127) 
		{
			str = "Ths domain name contains invalid characters.";
			if(return_val)
			{
				return str;
			}
			
			alert(str);
			return false;
		}
	}

	if (user.match(userPat)==null) 
	{
		str = "The username doesn't seem to be valid.";
		if(return_val)
		{
			return str;
		}
		
		alert(str);
		return false;
	}

	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) 
	{
		for (var i=1;i<=4;i++) 
		{
			if (IPArray[i]>255) 
			{
				str = "Destination IP address is invalid!";
				if(return_val)
				{
					return str;
				}
				
				alert(str);
				return false;
			}
		}
		return true;
	}
 
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;

	for (i=0;i<len;i++) 
	{
		if (domArr[i].search(atomPat)==-1) 
		{
			str = "The domain name does not seem to be valid.";
			if(return_val)
			{
				return str;
			}
			
			alert(str);
			return false;
		}
	}

	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) 
	{
		str = "The address must end in a well-known domain or two letter " + "country.";
		if(return_val)
		{
			return str;
		}
		
		alert(str);
		return false;
	}

	if (len<2) 
	{
		str = "This address is missing a hostname!";
		if(return_val)
		{
			return str;
		}
		
		alert(str);
		return false;
	}

	if(return_val)
	{
		return '';
	}
	
	return true;
 }

function validatePassword(fld, ret) 
{
    var error = false;
    var illegalChars = /[\W_]/; // allow only letters and numbers 
    var passwd_length_min = 6;
 
    if (!fld || !fld.value) 
    {
        error = "You didn't enter a password.\n";
        
        if(ret)
        {
        	return error;
        }
        
        return false;
    } 
    
	if ((fld.value.length < passwd_length_min)) 
    {
        error = "The password is the wrong length. \n";
        if(ret)
        {
        	return error;
        }
        return false;
    } 
    
    if (illegalChars.test(fld.value)) 
    {
        error = "The password contains illegal characters.\n";
        if(ret)
        {
        	return error;
        }
        return false;
    } 
    
    if ( fld.value.search(/[a-zA-Z]+/) == -1 )
    {
        error = "The password must contain at least one alpha character.\n";
        if(ret)
        {
        	return error;
        }
        return false;
    }
    
    if ( fld.value.search(/[0-9]/) == -1 )
    {
        error = "The password must contain at least one numerical character.\n";
        if(ret)
        {
        	return error;
        }
        return false;
    }
    
    if(ret)
    {
    	return '';
    }
    
   	return true;
}

function val_string(str_obj, num)
{
	var illegalChars = /\W/;
		
	if(!num)
	{
		num = 6;
	}
	
	if (!str_obj)
	{
		return false;
	}
	
	if ( illegalChars.test(str_obj.value) )
    {
    	alert(str_obj.name + " has Invalid Characters");
        return false;
    }
    
	if ( str_obj.value.length < num ) 
    {
    	alert(str_obj.name + " Does not meet the minimum amount of characters");
        return false;
    }
    
    return true;
}


function getData(dataSource) 
{ 
	var XMLHttpRequestObject = false; 

	if (window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
	}

	if(XMLHttpRequestObject) 
	{
		XMLHttpRequestObject.open("GET", dataSource); 
	
		XMLHttpRequestObject.onreadystatechange = function() 
		{ 
			alert("ready state: " + XMLHttpRequestObject.readyState + "\n " + "status: " +XMLHttpRequestObject.status); false;
			
			if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) 
			{ 
				if(XMLHttpRequestObject.responseText == "no")
				{
					var targetDiv = document.getElementById("targetDiv");
					targetDiv.innerHTML = "Could not locate your account.";
					return false;
				}
			} 
		} 
		
		XMLHttpRequestObject.send(null); 
	}
}

function checkUsername(keyEvent) 
{
	var targetDiv = document.getElementById("targetDiv");
	targetDiv.innerHTML = "";
	var username = document.getElementById("username");
	var password = document.getElementById("password");
	
	if (username.value) 
	{
		getData("https://www.camsnetworkcash.com/scripts/checklogin.php?un=" + username.value +"&pw=" + password.value + '&action=login');
	} 
}


function URLEncode(clearString) 
{
	var output = '';
	var x = 0;
	clearString = clearString.toString();
	var regex = /(^[a-zA-Z0-9_.]*)/;
	
	while (x < clearString.length) 
	{
		var match = regex.exec(clearString.substr(x));
		if (match != null && match.length > 1 && match[1] != '') 
		{
			output += match[1];
			x += match[1].length;
		} else {
			if (clearString[x] == ' ')
				output += '+';
			else {
				var charCode = clearString.charCodeAt(x);
				var hexVal = charCode.toString(16);
				output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
			}
			x++;
		}
	}
	
	return output;
}


function URLDecode(encodedString) 
{
	var output = encodedString;
	var binVal, thisString;
	var myregexp = /(%[^%]{2})/;
	
	while ((match = myregexp.exec(output)) != null && match.length > 1 && match[1] != '') 
	{
		binVal = parseInt(match[1].substr(1),16);
		thisString = String.fromCharCode(binVal);
		output = output.replace(match[1], thisString);
	}
	
	return output;
}

function checkSubmitAction( e )
{
	var keyCode = (window.Event) ? e.which : e.keyCode;
	if( keyCode == 13 ) 
	{
		return true;
	}
}

function checkTxtEntries(e)
{
	var keyCode = (window.Event) ? e.which : e.keyCode;

	if (e.keyCode != 8 && e.keyCode != 46 && e.keyCode != 110
		&& e.keyCode != 38 && e.keyCode != 39
		&& e.keyCode != 40 && e.keyCode != 37) 
	{
		return true;
	}
	
	return false;
}

