function changeState(state)
{
	var imageItem = document.getElementById('partRestaurants');
	var restList;
	
	if(state == 'qld')
	{
		restList = new Array("<h3>QLD</h3>", "Aria- Brisbane", "Kingsleys - Brisbane", "Water bar &amp; Grill - Cairns", "Petries Brasserie (Brisbane Marriott) - Brisbane", "Perle Contemporary Dining &amp; Lounge Bar - Surfers Paradise", "Bellakai - Coolangatta", "Mist - Coolangatta", "East Restaurant &amp; Lounge Bar - Broadbeach", "Mariosarti - Toowong");
		imageItem.src = 'images/rest_qld.jpg';
		document.getElementById('stateName').innerHTML ='(QLD)';
	}
	else if(state == 'nsw')
	{
		restList = new Array("<h3>CBD</h3>", "Aesops Restaurant", "Altitude Restaurant", "Apres Restaurant", "Aria - Sydney", "Astral", "Azuma", "Azuma Kushiyaki", "Bar Cupola", "Bar Milazzo", "Bilsons", "Bistro Lilly", "Bistroteque", "Blue Fish Cafe Seafood Restaurant", "Bodhi Restaurant", "Cafe Mix", "ChopHouse Sydney", "Coast Restaurant", "Eleven Kitchen &amp; Cellar", "Field House Restaurant &amp; Bar (Citigate Central)", "Fish at the Rocks", "Fix St James", "Forty One Restaurant", "Georges Mediterranean Bar &amp; Grill", "Giovanni\'s", "Glass Brasserie", "Harbour Kitchen &amp; Bar (Park Hyatt)", "Hyde Park Barracks Cafe", "I Thai Restaurant and Bar", "Ice Cube Seafood Grill Bar", "Italian Village", "James Squire Brewhouse - Sydney", "JB\'s Bar &amp; Grill (Holiday Inn)", "Karma Restaurant", "King 143 Restaurant", "Kingsleys Australian Steakhouse", "Kobe Jones Sydney", "Mazzaro", "MoS Cafe", "Number One Wine Bar", "Occidental Hotel / Fairmont", "Ocean Room", "Olivo Restaurant", "Passello Italian Restaurant", "Plate Restaurant", "Pony Lounge and Dining", "Pumphouse Restaurant &amp; Bar", "Quadrant Restaurant (Quay Grand)", "Quayside Brasserie", "Restaurant Arras", "Rockpool (Fish)", "Sails on Lavender Bay", "Seans Kitchen", "Selah", "Settlement Bar", "Shinara Grill &amp; Lounge", "Spanish Terrazas Restaurant", "Steel Bar &amp; Grill", "Steersons - Bridge Street", "Steersons - Lime Street", "Sugaroom", "The Orient Restaurant", "The Rocks Teppanyaki", "The Summit Restaurant", "The Wharf Restaurant", "Verandah Restaurant", "Vivaz Restaurant and Bar", "Waterfront", "Waterfront Grill", "Wildfire", "Wolfies Grill", "<h3>East</h3>", "212 on Riley", "25th Floor Restaurant", "Adelphi Meze Lounge Bar", "Agave Restaurante Mexicano", "Aki\'s Indian Restaurant", "Albies Restaurant (The Sebel Hotel)", "Alio Restaurant", "Arun Thai Restaurant", "Assiette", "Battuta", "Bei Amici", "Bentley Restaurant &amp; Bar", "Bistro Balcony (Kings Cross Hotel)", "Blue Orange", "Blue Sydney (Taj Hotel)", "Bondi Tucker", "Bonsai Restaurant", "Cafe Bondi", "Catalina", "Cellini\'s", "China Doll ", "Churrasco", "Copper Tiffin", "Cru 54 Kitchen and Bar", "Danny\'s La Bussola", "Eat Thai", "Emmilou Drink.Wine.Dine", "Fiesta on Oxford", "Five O\'s Coogee", "Foveaux Restaurant and Bar", "Gems at The Spot", "Have More Indian Cuisine", "India Down Under", "JAR", "Kingsleys Wolloomooloo", "Kudu Lounge", "La Cocina Peru", "La Mint", "Le Pelican", "Li Zai", "Manta Restaurant and Bar ", "Marque Restaurant", "MD Thai Restaurant", "Mezzaluna Ristorante Italiano", "Mocean", "Monkey Magic", "Monza Thai", "Moroccan Feast", "Ouzo 88", "Pazzo Restaurant", "Pier Restaurant", "Pinocchio\'s", "Puntino Trattoria", "Raquels Spanish Kitchen", "Red Door Foveaux", "Renatos Italian", "Restaurant Balzac", "Royal Bar and Grill", "Saigon Bay Restaurant", "Sauce Bar and Grill", "Seahorse Seafood Italian Restaurant", "Seasons Cafe", "Souk in the City", "Specc Restaurant", "Sugarcane Restaurant", "Sumbar", "Swell Restaurant", "Taste of India", "The Light Brigade", "The Lincoln", "The Yellow Bistro", "Townhouse Bar &amp; Restaurant (The Sebel Hotel)", "Velero", "Verde", "Yai Thai Alexandria", "Yai Thai Surry Hills", "<h3>North</h3>", "Allegria Ristorante &amp; Pizzeria", "Bayleaf Brasserie", "Berowra Waters Inn", "Blu Watergrill", "Bluewater Cafe", "Boilerhouse (Q Station)", "Cala Luna", "Caprice Restaurant Bar &amp; Grill", "Catalonia Restaurant", "Chill Seafood Restaurant", "Clareville Kiosk ", "Cottage Point Inn Restaurant", "De Malaya", "Dunes Restaurant &amp; Kiosk", "Grace of India", "Had to Happen", "Harrys Fish Cafe", "Henry Afrikas", "In Restaurant", "Jellyfish Cafe", "Jonah\'s", "Kammadhenu", "Koi Restaurant", "La Goulue Restaurant", "Lane Cove River &amp; Steak Seafood", "Malabar @ Darlinghurst", "Mrs. Top French Regional Cuisine", "MuMu Grill ", "Not Bread Alone ", "Piccolo Italian Restaurant", "Pilu at Freshwater", "Plonk Beach Cafe", "Public Dining Room", "Qmin", "Raavis Cumin", "Romanos", "Sea La Vie", "Taiki", "Thai Spice House", "The Bathers Pavilion", "The Blue Elephant", "The Burlington Bar &amp; Dining", "The Deck Sydney", "U-Thong Thai", "Waqu", "Whitewater Restaurant", "Wildwater Grill", "William Blue Dining", "Zoe Cafe &amp; Brasserie ", "<h3>West</h3>", "African Feeling", "Alira", "Angelos on the Bay", "Aperitivo", "Australian Youth Hotel", "Bach Dang Restaurant", "Bar Baba", "Baraka Restaurant", "BIN 24", "Bistro Ortolan", "Boathouse on Blackwattle Bay", "Caesars", "Cafe XXII", "Carpaccio Ristorante", "Chedi Restaurant", "Cibo e Vino", "Courtneys Brasserie", "Cucina Viscontini", "Da Gianni Trattoria", "Dante", "Efendy ", "Flying Fish", "Fountain 77 ", "Glebe Point Diner", "il piave", "Kammadhenu", "Kashi Indian Restaurant", "La Boheme Restaurant &amp; Cafe", "Lachlans Old Government House", "Leichhardt Nepalese Restaurant", "Level 1 Restaurant &amp; Bar", "Martini Bar", "Massayah", "Mediterranean Kitchen", "Na Zdrowie", "Osvaldo Polletti", "Our Place on Darling", "Pen", "Peronis", "Piazzetta Bella Italian Restaurant", "Posh Spice Indian Restaurant", "Pyrama", "Restaurant at 3 Weeds", "Roman\'s Restaurant", "Rosebud", "Safari Bar", "Sapore by the Fountain", "Savannahs Restaurant", "Sonis Newtown", "Spanish Tapas", "Stars at Gigis", "Tanjore", "Thai Riffic Newtown", "The Little Snail", "The Mixing Pot", "Vanilla Room", "Vicini", "<h3>South</h3>", "Grotta Capri", "Grove Restaurant (Stamford Plaza Sydney Airport)", "Signature Brasserie", "<h3>Regional</h3>", "Monets Cafe Restaurant - Batemans Bay", "The Denman Hotel - Thredbo");
		imageItem.src = 'images/rest_nsw.jpg';
		document.getElementById('stateName').innerHTML ='(NSW)';
		
	}
	else if(state == 'vic')
	{
		restList = new Array("<h3>CBD</h3>", "The Aparment", "Bisq Bar &amp; Grill", "Bistrot d\'Orsay", "Bluestone Restaurant Bar", "Bokchoy Tang", "Bopha Devi", "Bottega", "Ca de Vin", "Chillipadi", "Cho Gao Restaurant &amp; Bar", "Chophouse", "Fifteen Melbourne", "Flower Drum", "Italy 1", "James Squire Brewhouse", "Kobe Jones Melbourne", "Little Peninsula", "Mask of China", "Match Bar &amp; Grill", "Money Order Office", "Nihonbashi Zen", "Oyster Little Bourke", "Pan Asian", "Red Emperor", "Renzo\'s Bar Cafe Italiano", "Solarino", "Sotto E Sopra", "Takumi Japanese Restaurant", "The Mill", "Tomodachi", "Trunk", "Berth", "<h3>East</h3>", "Araliya", "Aya Japanese Restaurant", "Canvas", "Cerone\'s Cafe", "Clancy\'s Grill", "Italy 1 Camberwell", "Le Gourmet", "Orsini Restaurant", "Shallot Thai Restaurant", "Verona Restaurant", "Wabi Sabi Salon", "Zio\'s Restaurant", "Bouzy Rouge", "<h3>North</h3>", "Balzari", "Bistro Flor", "Brisc", "East Imperial", "Embrasse Restaurant", "Philhellene", "<h3>South</h3>", "Aja", "Ambrosia Cafe", "Basque Tapas &amp; Wine", "Birichino", "Chez Olivier Le Bistro", "Chez Olivier L\'Epicerie", "Finz Seafood Restaurant", "Harveys Restaurant", "Kyma Restaurant", "Lamaro\'s", "Les Boucheries Parisiennes", "Little India Bistro &amp; Tandoor", "Livingroom", "Mahjong", "Mandala Restaurant &amp; Bar", "Mediterraneo Charcoal Grill", "The Montague", "Niche Cafe (Bayview Eden)", "Orita\'s", "Quaff", "Sails Brasserie (Bayview On The Park)", "Sapore", "Sicilian Orange", "Spitiko", "Vivace", "Wabi Sabi Garden");
		imageItem.src = 'images/rest_vic.jpg';
		document.getElementById('stateName').innerHTML ='(VIC)';
	}
	
	var listItems ='';
	var seperatorCount;// = restList.length;
	if(restList.length % 3 == 0)
	{
		seperatorCount = restList.length / 3;
	}
	else
	{
		seperatorCount = (restList.length + (3 - (restList.length % 3))) / 3;
	}
	
		
	//alert('seperatorCount '+seperatorCount+' restList.length '+restList.length);
	for(i=0; i<restList.length;i++)
	{
		
		if(i % seperatorCount == 0)
		{
			if(i != 0)
			{
				listItems += "</ul>";
			}
			listItems += "<ul class=\"floatingListing\">";
		}
		
		listItems += "<li>" + restList[i] + "</li>";
		
	}
	listItems += "</ul>";
	
	
	
	document.getElementById('restListByState').innerHTML = listItems;	
}

function popup(url)
{
	window.open(url, 'privacyWindow','width=420,height=540,toolbar=no,location=no,directories=yes,menubar=no,scrollbars=no');
}


var white = '#ffffff';
var blue = '#00B2D9';
var black = '#000000';

//form validation
function validateForm(form)
{
	var incompleteReason = "";
	if( validateEmpty(new Array(form.rName, form.cName, form.cPhone, form.cEmail) ))
	{
		incompleteReason += validateEmail(form.cEmail);
		incompleteReason += validateName(form.rName, 'Restaurant Name');
		incompleteReason += validateName(form.cName, 'Name');
		incompleteReason += validatePhone(form.cPhone);
	}
	else
	{
		return false;
	}
	
	if(incompleteReason.length != 0)
	{
		alert(incompleteReason);
		return false;
	}
	
	form.action = "submitRequest.php";
	return true;

}

function validateEmpty(fieldArrays)
{
	var emptyFields = "";
	//if a field is not set, highlight the background colour
	for(i=0; i<fieldArrays.length; i++)
	{
		if(fieldArrays[i].value.length == 0)
		{
			fieldArrays[i].style.backgroundColor = blue;
			fieldArrays[i].style.border='1px solid';
			fieldArrays[i].style.color=white;
			emptyFields = "Please complete the fields highlighted.";
			
		}
		else
		{
			fieldArrays[i].style.backgroundColor = white;
			fieldArrays[i].style.color=black;
		}
	}
	
	if(emptyFields.length != 0)
	{
		alert(emptyFields);
		return false;
	}
	
	return true;

}

function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
   
   	fld.style.color = white;
    if (tfld.value == "") {
        fld.style.background = blue;
        error = "You didn't enter an email address.\n";
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        fld.style.background = blue;
        error = "Please enter a valid email address.\n";
    } else if (fld.value.match(illegalChars)) {
        fld.style.background = blue;
        error = "The email address contains illegal characters.\n";
    } else {
        fld.style.background = white;
        fld.style.color = black;
    }
    return error;
}

function validateName(fld, name) {
    var error = "";
    var illegalChars = /\W\s/; // allow letters, numbers, and underscores
 
    if (fld.value == "") {
        fld.style.background = blue; 
        error = "You didn't enter a " + name +".\n";
    } else if ((fld.value.length < 3) || (fld.value.length > 40)) {
        fld.style.background = blue; 
        error = "The " + name + " must be minumum 3 and maximum 40 characters long.\n";
    } else if (illegalChars.test(fld.value)) {
        fld.style.background = blue; 
        error = "The " + name + " contains illegal characters.\n";
    } else {
        fld.style.background = white;
    }
    return error;
}

function validatePhone(fld) {
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');    
   if (fld.value == "") {
        error = "You didn't enter a phone number.\n";
        fld.style.background = blue;
    } else if (isNaN(parseInt(stripped))) {
        error = "The phone number contains illegal characters.\n";
        fld.style.background = blue;
    } else if (!(stripped.length == 10)) {
        error = "The phone/mobile number must contain 10 digits. Make sure you included an area code.\n";
        fld.style.background = blue;
    }
    else if((/\D/.test(stripped)))
    {
    	error = "The phone number contains illegal characters.\n";
        fld.style.background = blue;
    }
    else
    {
    	fld.style.background = white;
    }

    return error;
}

function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
} 