// ---- toggleNews ------------------------------------------------------------------------- //
function toggleNews(x) {
	if ( $("#useimage_"+x).attr("checked") ) {
		$("#news_image_"+x).attr({"disabled" : "disabled"});
		$("#image_text_"+x).css({ "text-decoration" : "line-through" });
	} else {
		$("#news_image_"+x).attr({"disabled" : ""});
		$("#image_text_"+x).css({ "text-decoration" : "none" });
	}
	return;
}

// ---- gotoArchive ----------------------------------------------------------------------- //
function gotoArchive(stype) {
	var scode = document.getElementById('archiveSelect').value;
	if (empty(scode) && stype=='foodpress') {
		window.location = "press.php";
	} else if (empty(scode)) {
		window.location = "index.php";
	} else {
		window.location = "archive.php?sort="+scode+"&type="+stype;
	}
	return;
}

// ---- checkEditFoodPress ----------------------------------------------------------------------- //
function checkEditFoodPress () {
	var title = document.getElementById('press_title').value;
	var press_body = document.getElementById('press_body').value;
	var thumb = document.getElementById('press_image').value;
	var startday = document.getElementById('startdate_date').value;
	var startmonth = document.getElementById('startdate_month').value;
	var startyear = document.getElementById('startdate_year').value;
	
	if (!validLength(title, "title")) {
		return false;
	} else if (!validDate(startday, startmonth, startyear)) {
		alert("Please select a valid start date");
		return false;
	} else if(!validLength(press_body, "body")) {
		return false;
	} else if(!empty(thumb)) {
		if (!valid_photo_type(thumb)) {
		  alert("Please select a valid photo");
		  return false;
		}
	} else {
		return true;
	}
}
// ---- checkAddPress ----------------------------------------------------------------------- //
function checkAddFoodPress () {
	var title = document.getElementById('press_title').value;
	var press_body = document.getElementById('press_body').value;
	var thumb = document.getElementById('press_image').value;
	var startday = document.getElementById('startdate_date').value;
	var startmonth = document.getElementById('startdate_month').value;
	var startyear = document.getElementById('startdate_year').value;


	if (!validLength(title, "title")) {
		return false;
	} else if (empty(startday) || empty(startmonth) || empty(startyear)) {
		alert("Please select a valid start date");
		return false;
	} else if(!validLength(press_body, "body")) {
		return false;
	} else if(!empty(thumb)) {
		if (!valid_photo_type(thumb)) {
		  alert("Please select a valid photo");
		  return false;
		}
	} else {
		return true;
	}
}

// ---- checkEditPress ----------------------------------------------------------------------- //
function checkEditPress () {
	var type_press = document.getElementById('type_press').checked;
	var type_event = document.getElementById('type_event').checked;
	var title = document.getElementById('press_title').value;
	var location = document.getElementById('press_location').value;
	var description = document.getElementById('press_description').value;
	var thumb = document.getElementById('press_image').value;
	var startday = document.getElementById('startdate_date').value;
	var startmonth = document.getElementById('startdate_month').value;
	var startyear = document.getElementById('startdate_year').value;
	
	if (!type_press && !type_event) {
		alert("Please select a press type");
		return false;
	} else if (!validLength(title, "title")) {
		return false;
	} else if (!validDate(startday, startmonth, startyear)) {
		alert("Please select a valid start date");
		return false;
	} else if (!validDate(endmonth, endday, endyear)) {
		alert("Please select a valid end date");
		return false;
	} else if(!validLength(location, "location")) {
		return false;
	} else if(!validLength(description, "description")) {
		return false;
	} else if(!empty(thumb)) {
		if (!valid_photo_type(thumb)) {
		  alert("Please select a valid photo");
		  return false;
		}
	} else {
		return true;
	}
}
// ---- checkAddPress ----------------------------------------------------------------------- //
function checkAddPress () {
	var type_press = document.getElementById('type_press').checked;
	var type_event = document.getElementById('type_event').checked;
	var title = document.getElementById('press_title').value;
	var location = document.getElementById('press_location').value;
	var description = document.getElementById('press_description').value;
	var thumb = document.getElementById('press_image').value;
	var startday = document.getElementById('startdate_date').value;
	var startmonth = document.getElementById('startdate_month').value;
	var startyear = document.getElementById('startdate_year').value;


	if (!type_press && !type_event) {
		alert("Please select a press type");
		return false;
	} else if (!validLength(title, "title")) {
		return false;
	} else if (empty(startday) || empty(startmonth) || empty(startyear)) {
		alert("Please select a valid start date");
		return false;
	} else if(!validLength(location, "location")) {
		return false;
	} else if(!validLength(description, "description")) {
		return false;
	} else if(!empty(thumb)) {
		if (!valid_photo_type(thumb)) {
		  alert("Please select a valid photo");
		  return false;
		}
	} else {
		return true;
	}
}

function validDate(m, d, y) {
	if (empty(m) && empty(d) && empty(y)) {
		return true;
	} else if (!empty(m) && !empty(d) && !empty(y)) {
		return true;
	} else {
		return false;
	}
}

// ---- toggleBrowse ------------------------------------------------------------------------- //
function toggleBrowse() {
	var chk = document.getElementById('useimage');
	var recipe_image = document.getElementById('recipe_image');
	var press_image = document.getElementById('press_image');
	var bro = (recipe_image != null) ? recipe_image : press_image;
	bro.disabled = (chk.checked) ? true : false;
	var txt = document.getElementById('image-text');
	if (txt) {
	  txt.style.textDecoration = (chk.checked) ? 'line-through' : '';
	}
	return;
}

// ---- showPressDetailsRow ----------------------------------------------------------------------- //
function showPressDetailsRow(x) {
	var tr = document.getElementById('pressDetailsRow'+x);
	tr.style.display = (tr.style.display == 'none') ? '' : 'none';
	return;
}
// ---- showDetailsRow ----------------------------------------------------------------------- //
function showDetailsRow(x) {
	var tr = document.getElementById('detailsRow'+x);
	tr.style.display = (tr.style.display == 'none') ? '' : 'none';
	return;
}

// ---- buildDays ------------------------------------------------------------------------------ //
function buildDays(x) {
	var days = document.getElementById(x);
    for (i=1; i<32; i++) {
		days.options[i] = new Option(i, i);
	}
	return;
}

// ---- buildYears ----------------------------------------------------------------------------- //
function buildYears(x) {
	var today = new Date();
	var year = today.getFullYear()-1;
	var years = document.getElementById(x);
    for (i=1; i<7; i++) {
		years.options[i] = new Option(i+year, i+year);
	}
	return;
}

// ---- buildMonths --------------------------------------------------------------------------- //
var monthArr = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
var monthNames = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
function buildMonths(x) {
	var months = document.getElementById(x);
    for (i=1; i<13; i++) {
		months.options[i] = new Option(monthArr[i-1], monthNames[i-1]);
	}
	return;
}

// ---- checkAddDishtype ----------------------------------------------------------------------- //
function checkAddDishtype() {
	var name = document.getElementById('dishtype_name').value;
	
	if (!validLength(name, "dishtype name")) {
		return false;
	} else {
		return true;
	}
}

// ---- checkAddRecipe ----------------------------------------------------------------------- //
function checkAddRecipe() {
	var title = document.getElementById('recipe_title').value;
	var serves = document.getElementById('recipe_serves').value;
	var ingredients = document.getElementById('recipe_ingredients').value;
	var preparation = document.getElementById('recipe_preparation').value;
	var thumb = document.getElementById('recipe_image').value;
	
	if (!validLength(title, "title")) {
		return false;
	} else if(serves.length < 1) {
		alert("Please enter a valid serves value");
		return false;
	} else if(!validLength(ingredients, "set of ingredients")) {
		return false;
	} else if(!validLength(preparation, "preparation")) {
		return false;
	} else if(!empty(thumb)) {
		if (!valid_photo_type(thumb)) {
		  alert("Please select a valid photo");
		  return false;
		}
	} else {
		return true;
	}
}

//---------- valid file types
var fileTypes=["bmp","gif","png","jpg","jpeg"];

function valid_photo_type(s){
  var temp = s.split('.');
  var ext = temp[temp.length-1];
  for (i=0; i<fileTypes.length; i++) {
	  if (fileTypes[i] == ext) {
		  return true;
	  }
  }
  return false;
}

// ---- checkSendToFriend -------------------------------------------------------------------- //
function checkSendToFriend() {
	var yourname = document.getElementById('yourname').value;
	var youremail = document.getElementById('youremail').value;
	var friendname = document.getElementById('friendname').value;
	var friendemail = document.getElementById('friendemail').value;

	if (!validLength(yourname, "name")) {
		return false;
	} else if(!youremail) {
		window.alert("Please enter your email address");
		return false;
	} else if(!checkemail(youremail)) {
		window.alert("Please enter a valid email address");
		return false;
	} else if(!validLength(friendname, "friend's name")) {
		return false;
	} else if(!friendemail) {
		window.alert("Please enter your friend's email address");
		return false;
    } else if(!checkemail(friendemail)) {
		window.alert("Please enter a valid email address for your friend");
		return false;
	} else {
		return true;
	}
}

// ---- checkRecipeSubmit ----------------------------------------------------------------------- //
function checkRecipeSubmit() {
	var first_name = document.getElementById('first_name').value;
	var last_name = document.getElementById('last_name').value;
	var email = document.getElementById('email').value;
	var recipe_title = document.getElementById('recipe_title').value;
	var recipe_serves = document.getElementById('recipe_serves').value;
	var recipe_ingredients = document.getElementById('recipe_ingredients').value;
	var recipe_preparation = document.getElementById('recipe_preparation').value;

	if (!validLength(first_name, "first name")) {
		return false;
	} else if(!validLength(last_name, "last name")) {
		return false;
	} else if(!email) {
		window.alert("Please enter your email address");
		return false;
	} else if(!checkemail(email)) {
		window.alert("Please enter a valid email address");
		return false;
	} else if(!validLength(recipe_title, "recipe title")) {
		return false;
	} else if(!validLength(recipe_serves, "entry for serves")) {
		return false;
	} else if(!validLength(recipe_ingredients, "entry for ingredients")) {
		return false;
	} else if(!validLength(recipe_preparation, "entry for preparation")) {
		return false;
	}else {
		return true;
	}
}

// ---- siteCredit ------------------------------------------------------------------------------- //
function siteCredit(x) {
   var page = (x) ? "credit.htm" : "../credit.htm";
   window.open(page,'EANITHING','toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,copyhistory=no,scrollbars=no,width=539,height=194,top=100,left=100');
}

// ---- sendToFriend ---------------------------------------------------------------------------- //
function sendToFriend() {
   window.open('sendtofriend.php','EANITHING','toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,copyhistory=no,scrollbars=yes,width=515,height=755,top=100,left=100');
}

// ---- hoverKicker ----------------------------------------------------------------------------- //
function hoverKicker(x) {
	var img = document.getElementById(x);
	var path = img.src.split('_')[0];
	var src = img.src.split('_')[1].split('.')[0];
	img.src = (src == 'off') ? path+'_on.jpg' : path+'_off.jpg';
	return;
}


// ---- enlargeGraph ---------------------------------------------------------------------------- //
function enlargeImage() {
   window.open('enlarge.htm','EANITHING','toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,copyhistory=no,scrollbars=no,width=600,height=640,top=100,left=100');
}

// ---- populateServes -------------------------------------------------------------------------- //
function populateServes() {
	parentObj = document.getElementById('servesSelect');
	parentObj.options[0] = new Option('','');
	for (i=1; i<16; i++) {
		parentObj.options[i] = new Option(i,i);
	}
	parentObj.selectedIndex = 0;
	return;
}

//etc.
function isString(x) { return typeof x == 'string'; }


function checkemail(str) {
	var testresults=true;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	var emailPat=/^(.+)@(.+)$/; 
	var matchArray=str.match(emailPat); 
	if (matchArray==null) {	testresults=false; }
	// check length for user name and domain
	//else { 
	//	var user=matchArray[1];
	//	var domain=matchArray[2]; 
	//	if (user.length < 1 || doman.length < 1){ testresults=false; }		
	//}
	if (!filter.test(str)) { testresults=false; }

	return testresults;
}


function validLength(x, str) {
	if (x.length < 2) {
		alert("Please enter a valid "+str);
		return false;
	}
	else {
		return true;
	}
}


function validZip(x, t) {
  if ((x.length != 5) || !isInteger(x)) {
    alert("Please enter a valid "+t)
    return false;
  } else {
    return true;
  }
}

function empty(x){
  return (x == '');
}

function isInteger(s) {   
    for (i = 0; i < s.length; i++) {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}


// ---- State Select ---------------------------------------------------------------------------- //
var postState = '';
var postCountry = 'US';

var state = '\
US:AK:Alaska|\
US:AL:Alabama|\
US:AR:Arkansas|\
US:AS:American Samoa|\
US:AZ:Arizona|\
US:CA:California|\
US:CO:Colorado|\
US:CT:Connecticut|\
US:DC:D.C.|\
US:DE:Delaware|\
US:FL:Florida|\
US:FM:Micronesia|\
US:GA:Georgia|\
US:GU:Guam|\
US:HI:Hawaii|\
US:IA:Iowa|\
US:ID:Idaho|\
US:IL:Illinois|\
US:IN:Indiana|\
US:KS:Kansas|\
US:KY:Kentucky|\
US:LA:Louisiana|\
US:MA:Massachusetts|\
US:MD:Maryland|\
US:ME:Maine|\
US:MH:Marshall Islands|\
US:MI:Michigan|\
US:MN:Minnesota|\
US:MO:Missouri|\
US:MP:Marianas|\
US:MS:Mississippi|\
US:MT:Montana|\
US:NC:North Carolina|\
US:ND:North Dakota|\
US:NE:Nebraska|\
US:NH:New Hampshire|\
US:NJ:New Jersey|\
US:NM:New Mexico|\
US:NV:Nevada|\
US:NY:New York|\
US:OH:Ohio|\
US:OK:Oklahoma|\
US:OR:Oregon|\
US:PA:Pennsylvania|\
US:PR:Puerto Rico|\
US:PW:Palau|\
US:RI:Rhode Island|\
US:SC:South Carolina|\
US:SD:South Dakota|\
US:TN:Tennessee|\
US:TX:Texas|\
US:UT:Utah|\
US:VA:Virginia|\
US:VI:Virgin Islands|\
US:VT:Vermont|\
US:WA:Washington|\
US:WI:Wisconsin|\
US:WV:West Virginia|\
US:WY:Wyoming|\
US:AA:Military Americas|\
US:AE:Military Europe/ME/Canada|\
US:AP:Military Pacific|\
';


function TrimString(sInString) {
  if ( sInString ) {
    sInString = sInString.replace( /^\s+/g, "" );// strip leading
    return sInString.replace( /\s+$/g, "" );// strip trailing
  }
}

function populateState() {
  var selObj = document.getElementById('stateSelect');
  var foundState = false;

  // Populate the drop down with states from the selected country
  var stateLineArray = state.split("|");  // Split into lines
  var optionCntr = 1;
  for (var loop = 0; loop < stateLineArray.length; loop++) {
    lineArray = stateLineArray[loop].split(":");
    countryCode  = TrimString(lineArray[0]);
    stateCode    = TrimString(lineArray[1]);
    stateName    = TrimString(lineArray[2]);
  if ('US' == countryCode && countryCode != '' ) {
    // If it's a input element, change it to a select
      if ( selObj.type == 'text' ) {
        parentObj = document.getElementById('stateSelect').parentNode;
        parentObj.removeChild(selObj);
        var inputSel = document.createElement("SELECT");
        inputSel.setAttribute("name","state");
        inputSel.setAttribute("id","stateSelect");
        parentObj.appendChild(inputSel) ;
        selObj = document.getElementById('stateSelect');
        selObj.options[0] = new Option('Select State','');
        selObj.selectedIndex = 0;
      }
      if ( stateCode != '' ) {
        selObj.options[optionCntr] = new Option(stateName, stateCode);
      }
      // See if it's selected from a previous post
      if ( stateCode == postState && countryCode == postCountry ) {
        selObj.selectedIndex = optionCntr;
      }
      foundState = true;
      optionCntr++
    }
  }
  // If the country has no states, change the select to a text box
  if ( ! foundState ) {
    parentObj = document.getElementById('stateSelect').parentNode;
    parentObj.removeChild(selObj);
  // Create the Input Field
    var inputEl = document.createElement("INPUT");
    inputEl.setAttribute("id", "stateSelect");
    inputEl.setAttribute("type", "text");
    inputEl.setAttribute("name", "state");
    inputEl.setAttribute("size", 20);
    inputEl.setAttribute("value", postState);
    parentObj.appendChild(inputEl) ;
  }
}
