function highlightStock( ID ){

	document.getElementById('stockimage' + ID).style.borderWidth = '1px';
	document.getElementById('stockimage' + ID).style.padding = '1px';

}

function unhighlightStock( ID ){

	document.getElementById('stockimage' + ID).style.borderWidth = '0px';
	document.getElementById('stockimage' + ID).style.padding = '2px';

}

function toggleSelectStock( ID ){

	if (document.mapSubmission.stockupload.value == ID){
		document.mapSubmission.stockupload.value = 0;
		document.getElementById('stockimage' + ID).style.borderColor = 'blue';
		document.getElementById('stockimage' + ID).onmouseover = function(){ highlightStock(ID) };
		document.getElementById('stockimage' + ID).onmouseout = function(){ unhighlightStock(ID) };
	} else {
		if (document.mapSubmission.stockupload.value != 0){

			var oldID = document.mapSubmission.stockupload.value;
			document.getElementById('stockimage' + oldID).style.borderColor = 'blue';
			document.getElementById('stockimage' + oldID).onmouseover = function(){ highlightStock(oldID) };
			document.getElementById('stockimage' + oldID).onmouseout = function(){ unhighlightStock(oldID) };

			document.getElementById('stockimage' + oldID).style.borderWidth = '0px';
			document.getElementById('stockimage' + oldID).style.padding = '2px';

		}
		document.mapSubmission.stockupload.value = ID;
		document.getElementById('stockimage' + ID).style.borderColor = 'red';
		document.getElementById('stockimage' + ID).onmouseover = function(){};
		document.getElementById('stockimage' + ID).onmouseout = function(){};
	}

}

function mapFormSubmit(){

// 	var completed = checkMissing( Array('firstname','lastname','city','state') );
	var validEmail = validateEmail( Array('email') );
	var validZipcode = validateZipcode( Array('zip') );
// 	var validSubmission = validateSubmission('image','video','stock');

	if (validEmail && validZipcode) {
	  if ( document.getElementById('city').value && document.getElementById('state').value && document.getElementById('zip').value){
      var validTOS = checkChecked( Array('tos') );
      if (validTOS) validateAddress( document.getElementById('city').value + ', ' + document.getElementById('state').value + ' ' + document.getElementById('zip').value );
    } else {
      validateAddress( document.getElementById('zip').value );
    }
  }
}

function validateAddress(address){

	var status = true;

	if (geocoder) {
		geocoder.getLatLng(
			address,
			function(point) {
				if (!point) {
					status = false;
					document.getElementById('invalid_address').style.display = 'block';
				} else {
					document.getElementById('invalid_address').style.display = 'none';
					document.getElementById('lng').value = point.lng();
					document.getElementById('lat').value = point.lat();
					document.mapSubmission.submit();
				}
			}
		);
	}

	return status;

}

function checkMissing(check){

	var status = true;

	for (var i = 0; i < check.length; i++){
		if (document.getElementById(check[i])){
			if (document.getElementById(check[i]).value){
    		console.log(check[i] + ': ' + document.getElementById(check[i]).value );
        document.getElementById('missing_' + check[i]).style.display = 'none';
			} else {
				document.getElementById('missing_' + check[i]).style.display = 'inline';
				status = false;
			}
		} else {
			console.log(check[i] + ' does not exist!');
			status = false;
		}
	}

	return status;

}

function checkChecked(check){

  var status = true;

  for (var i = 0; i < check.length; i++){
    if (document.getElementById(check[i])){
      if (document.getElementById(check[i]).checked){
        document.getElementById('missing_' + check[i]).style.display = 'none';
      } else {
        document.getElementById('missing_' + check[i]).style.display = 'inline';
        status = false;
      }
    } else {
      console.log(check[i] + ' does not exist!');
      status = false;
    }
  }

  return status;

}


function validateZipcode(check){

	var status = true;

	for (var i = 0; i < check.length; i++){
		if (document.getElementById(check[i])){
			if (document.getElementById(check[i]).value){
				document.getElementById('missing_' + check[i]).style.display = 'none';
				var zipcode = document.getElementById(check[i]).value;
				if ( zipcode.match('^[0-9]{5}$') ){
					document.getElementById('invalid_' + check[i]).style.display = 'none';
				} else {
					document.getElementById('invalid_' + check[i]).style.display = 'inline';
					status = false;
				}
			} else {
				document.getElementById('missing_' + check[i]).style.display = 'inline';
				status = false;
			}
		} else {
			alert(check[i] + ' does not exist!');
			status = false;
		}
	}

	return status;

}

function validateEmail(check){

	var status = true;

	for (var i = 0; i < check.length; i++){
		if (document.getElementById(check[i])){
			if (document.getElementById(check[i]).value){
				document.getElementById('missing_' + check[i]).style.display = 'none';
				var email = document.getElementById(check[i]).value;
				if ( email.match('^.+?@.+?[\.]{1}.+?$') ){
					document.getElementById('invalid_' + check[i]).style.display = 'none';
				} else {
					document.getElementById('invalid_' + check[i]).style.display = 'inline';
					status = false;
				}
			} else {
				document.getElementById('missing_' + check[i]).style.display = 'inline';
				status = false;
			}
		} else {
			alert(check[i] + ' does not exist!');
			status = false;
		}
	}

	return status;

}

function validateSubmission(image,video,stock){

	var status = true;

	document.getElementById('missing_submission').style.display = 'none';
	document.getElementById('double_submission').style.display = 'none';
	document.getElementById('invalid_video').style.display = 'none';

	if ( (document.getElementById(image).value || (document.getElementById(stock).value != 0) ) && document.getElementById(video).value){

		document.getElementById('double_submission').style.display = 'inline';
		status = false;

	} else if (document.getElementById(image).value || document.getElementById(stock).value != 0 || document.getElementById(video).value){

		if ( document.getElementById(video).value && !document.getElementById(video).value.match('youtube.com') ){
			document.getElementById('invalid_video').style.display = 'inline';
			status = false;
		}

	} else {

		document.getElementById('missing_submission').style.display = 'inline';
		status = false;
	}

	return status;

}

function setApprovedStatus(ID,status){

	var req = newXMLHttpRequest();
	var handlerFunction = getReadyStateHandler(req, catchApprove);
	req.onreadystatechange = handlerFunction;

	// get a response back from this request
	req.open("POST", "setApproved.php", true);
	req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	req.send('ID=' + ID + '&status=' + status);

}

function catchApprove( xmlResponse ){

	var ID = xmlResponse.getElementsByTagName('response')[0].getAttribute('ID');
	document.getElementById('submission' + ID).parentNode.removeChild( document.getElementById('submission' + ID) );

}