function openCenterWindow(URL,winName,w,h,features) {

  // if screen.dimension is true (available), 
  // then calculate the position using that value, else use a fixed value
  xPos = (screen.width) ? (screen.width-w)/2 : 50;
  yPos = (screen.height) ? (screen.height-h)/2 : 50;
  
  // assemble all window settings from calculations and parameters
  settings = 'height='+h+',width='+w+',top='+yPos+',left='+xPos+','+features
  
  // open the window and bring it to front
  thisWin=window.open(URL,winName,settings);
  thisWin.focus();
}



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.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}

function MM_nbGroup(event, grpName) { //v6.0
  var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
      img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
      if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
      nbArr[nbArr.length] = img;
      for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
        if (!img.MM_up) img.MM_up = img.src;
        img.src = img.MM_dn = args[i+1];
        nbArr[nbArr.length] = img;
    } }
  } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
      nbArr[nbArr.length] = img;
    }
  } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) {
      img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
    nbArr = document[grpName];
    if (nbArr)
      for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
      nbArr[nbArr.length] = img;
  } }
}


 
function unState(num){
	//alert(num);
	var state_check = "document.forms[0]."+num+".checked = false";
	//alert(state_check);
	eval(state_check);
}



/*********************************************************************
   * Get an object, this function is cross browser
   * *** Please do not remove this header. ***
   * This code is working on my IE7, IE6, FireFox, Opera and Safari
   * 
   * Usage: 
   * var object = get_object(element_id);
   *
   * @Author Hamid Alipour Codehead @ webmaster-forums.code-head.com  
  **/
  function get_object(id) {
   var object = null;
   if( document.layers ) {   
    object = document.layers[id];
   } else if( document.all ) {
    object = document.all[id];
   } else if( document.getElementById ) {
    object = document.getElementById(id);
   }
   return object;
  }
  /*********************************************************************/
  
function newMonth(dir_id, add){
	//alert('go');
	
	//var state_name = document.search_form.state_id.value;
	var date_div = get_object('date_div');
	var ajaxRequest;  // The variable that makes Ajax possible!
		try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	
	} catch (e){
		
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
			
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			
			} catch (e){
				alert('no');
	
				return false;
			}
		}
	}
	// Create a function that will receive data sent from the server
	ajaxRequest.onreadystatechange = function(){
		
		if(ajaxRequest.readyState == 4){	
			var theDate = ajaxRequest.responseText;
			date_div.innerHTML = theDate;
			
	
		}
	}
	
	ajaxRequest.open("GET", "../includes/date.php?dir_id="+dir_id+"&add="+add, true);

	ajaxRequest.send(null); 
	
}


function getCityMenu($dir){
	//alert('go');
	
	var state_name = document.search_form.state_id.value;


	var ajaxRequest;  // The variable that makes Ajax possible!
		try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	
	} catch (e){
		
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
			
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			
			} catch (e){
				alert('no');
	
				return false;
			}
		}
	}
	// Create a function that will receive data sent from the server
	ajaxRequest.onreadystatechange = function(){
		
		if(ajaxRequest.readyState == 4){	
		
			var theArray = ajaxRequest.responseText;
			eval(theArray);
			//alert(ajaxRequest.readyState);
	//for (i = document.search_form.cities.options.length; i >= 0; i--) {
		//document.search_form.cities.options[i] = null; 
	//}
	
	//load proper values
	var j = 0;
	document.search_form.cities.options[j] = new Option("choose metro area", "");
	j++;
	for (i = 0; i < citiesArray.length; i++) {
		if (citiesArray[i] != null) {
			document.search_form.cities.options[j] = new Option(citiesArray[i], citiesArray[i]);
			j++;
		}
	}
		
		// now lets set the default if there is one ( will work for page relaods etc )
		// lastMetroArea Search is defined on search_results.php
		
		if ( typeof lastMetroAreaSearch != null && typeof lastMetroAreaSearch != 'undefined' ) {
			if ( lastMetroAreaSearch != '' ) {
				counter = 0; 
				while ( document.search_form.cities[counter] ) {
					if ( document.search_form.cities[counter].value == lastMetroAreaSearch ) {
						document.search_form.cities[counter].selected = true;
					} else { 
						document.search_form.cities[counter].selected = false;
					}
					counter++;
				} // end while city options
				lastMetroAreaSearch = ''; // set this empty so we only do this once per page load
			} // end if not an empty string
		} // end if typeof is not null
	
		}
	}
	if($dir==true){
	ajaxRequest.open("GET", "../includes/cities.php?state_name="+state_name, true);
	}else{
	ajaxRequest.open("GET", "includes/cities.php?state_name="+state_name, true);
	}
	ajaxRequest.send(null); 
	
}





function checkAll(state_name){
	//alert(document.forms[0].elements.length);
	
	for (i=0; i < document.forms[0].elements.length; i++){
	var city = document.forms[0].elements[i].name.indexOf(state_name);
	//alert(city);
	if(city!=-1){
	if(document.forms[0].elements[i].checked == false){
	document.forms[0].elements[i].checked = true;
	}else{
	document.forms[0].elements[i].checked = false;
	}

	}
	}
}

function checkAll_US(){
	//alert(document.forms[0].elements.length);
	if(document.forms[0].elements[0].checked == true){
	for (i=1; i < document.forms[0].elements.length; i++){
	document.forms[0].elements[i].checked = true;
	}
	}else{
	for (i=1; i < document.forms[0].elements.length; i++){
	document.forms[0].elements[i].checked = false;
	
	}	
	}
	
	
	
}



/// the following is validating attendees signup form
function sameasAbove(frm) { 
	 if (frm.same.click){	
document.form1.Ecom_BillTo_Postal_Street_Line1.value=document.form1.Ecom_ShipTo_Postal_Street_Line1.value;
document.form1.Ecom_BillTo_Postal_Street_Line2.value=document.form1.Ecom_ShipTo_Postal_Street_Line2.value;
document.form1.Ecom_BillTo_Postal_Name_First.value=document.form1.Ecom_ShipTo_Postal_Name_First.value;
document.form1.Ecom_BillTo_Postal_Name_Last.value=document.form1.Ecom_ShipTo_Postal_Name_Last.value;		 
document.form1.Ecom_BillTo_Postal_City.value=document.form1.Ecom_ShipTo_Postal_City.value;
document.form1.Ecom_BillTo_Postal_StateProv.value=document.form1.Ecom_ShipTo_Postal_StateProv.value;
document.form1.Ecom_BillTo_Postal_PostalCode.value=document.form1.Ecom_ShipTo_Postal_PostalCode.value;

document.form1.Ecom_BillTo_Telecom_Phone_Number.value=document.form1.Ecom_ShipTo_Telecom_Phone_Number.value;
document.form1.Ecom_BillTo_Online_Email.value=document.form1.Ecom_ShipTo_Online_Email.value;
		 } 
	}
// from http://developer.apple.com/internet/webcontent/validation.html	
function checkWholeForm(frm) {
    var why = "";
	why += check_Ecom_Cost_Total(frm.Ecom_Cost_Total.value);
	why += check_ShipToFName(frm.Ecom_ShipTo_Postal_Name_First.value);
	why += check_ShipToLName(frm.Ecom_ShipTo_Postal_Name_Last.value);
	why += check_BillToFName(frm.Ecom_BillTo_Postal_Name_First.value);
	why += check_BillToLName(frm.Ecom_BillTo_Postal_Name_Last.value);
	why += check_ShipToAddress(frm.Ecom_ShipTo_Postal_Street_Line1.value);
	why += check_BillToAddress(frm.Ecom_BillTo_Postal_Street_Line1.value);
	why += check_ShipToCity(frm.Ecom_ShipTo_Postal_City.value);
	why += check_BillToCity(frm.Ecom_BillTo_Postal_City.value);
	why += check_ShipToState(frm.Ecom_ShipTo_Postal_StateProv.value);
	why += check_BillToState(frm.Ecom_BillTo_Postal_StateProv.value);
	why += check_ShipToZip(frm.Ecom_ShipTo_Postal_PostalCode.value);
	why += check_BillToZip(frm.Ecom_BillTo_Postal_PostalCode.value);
	why += check_ShipToEmail(frm.Ecom_ShipTo_Online_Email.value);
	why += check_BillToEmail(frm.Ecom_BillTo_Online_Email.value);
	why += check_CardType(frm.Ecom_Payment_Card_Type.value);
	why += check_CardNumber(frm.Ecom_Payment_Card_Number.value);
	why += check_CardMonth(frm.Ecom_Payment_Card_ExpDate_Month.value);
	why += check_CardYear(frm.Ecom_Payment_Card_ExpDate_Year.value);
	why += check_CardVeri(frm.Ecom_Payment_Card_Verification.value);
	why += check_Company(frm.Ecom_ShipTo_Postal_Company.value);
	why += check_Terms(frm.terms.value);

    if (why != "") {
       alert(why);
       return false;
    }else {
return true;
	}
}

//test number of booths

function check_Ecom_Cost_Total(string) {
var error="";
if ((document.form1.Ecom_Cost_Total[0].checked == false)&&(document.form1.Ecom_Cost_Total[1].checked == false)&&(document.form1.Ecom_Cost_Total[2].checked == false)&&(document.form1.Ecom_Cost_Total[3].checked == false)&&(document.form1.Ecom_Cost_Total[4].checked == false)) {
	error = "Please select the number of tickets you want. \n";
}
return error;
    }

// email

function check_ShipToEmail(strng) {
var error="";
if (strng == "") {
   error = "You didn't enter a contact email address.\n";
}

    var emailFilter=/^.+@.+\..{2,3}$/;
    if (!(emailFilter.test(strng))) { 
       error = "Please enter a valid contact email address.\n";
    }
    else {
//test email for illegal characters
       var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
         if (strng.match(illegalChars)) {
          error = "The contact email address contains illegal characters.\n";
       }
    }
return error;    
}
function check_BillToEmail(strng) {
var error="";
if (strng == "") {
   error = "You didn't enter a billing email address.\n";
}

    var emailFilter=/^.+@.+\..{2,3}$/;
    if (!(emailFilter.test(strng))) { 
       error = "Please enter a valid billing email address.\n";
    }
    else {
//test email for illegal characters
       var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
         if (strng.match(illegalChars)) {
          error = "The billing email address contains illegal characters.\n";
       }
    }
return error;    
}

// test names
function check_ShipToFName(strng) {
var error="";
if (strng == "") {
   error = "Please enter a contact first name.\n";
}
return error;    
}
function check_ShipToLName(strng) {
var error="";
if (strng == "") {
   error = "Please enter a contact last name.\n";
}
return error;    
}
function check_BillToFName(strng) {
var error="";
if (strng == "") {
   error = "Please enter a billing frist name.\n";
}
return error;    
}
function check_BillToLName(strng) {
var error="";
if (strng == "") {
   error = "Please enter a billing last name.\n";
}
return error;    
}

//check address

function check_ShipToAddress(strng) {
var error="";
if (strng == "") {
   error = "Please enter a contact street address.\n";
}
else if (!((strng.search(/(a-z)+/))
  && (strng.search(/(0-9)+/)))) {
  error = "Please enter a valid contact street address.\n";
  }
return error;    
}
function check_BillToAddress(strng) {
var error="";
if (strng == "") {
   error = "Please enter a billing street address.\n";
}
else if (!((strng.search(/(a-z)+/))
  && (strng.search(/(0-9)+/)))) {
  error = "Please enter a valid billing street address.\n";
  }
return error;    
}

// Check City

function check_ShipToCity(strng) {
var error="";
if (strng == "") {
   error = "Please enter a contact city.\n";
}
return error;    
}
function check_BillToCity(strng) {
var error="";
if (strng == "") {
   error = "Please enter a billing city.\n";
}
return error;    
}

// check State

function check_ShipToState(strng) {
var error="";
if (strng == "") {
   error = "Please enter a contact state.\n";
}
	var illegalChars = /[\W_(0-9)]/; // allow only letters
 if ((strng.length < 2) || (strng.length > 2)) {
       error = "Please enter 2 digit mail code for the contact state.\n";
    }
	 else if (illegalChars.test(strng)) {
      error = "The contact state contains illegal characters.\n";
    }
return error;    
}
function check_BillToState(strng) {
var error="";
if (strng == "") {
   error = "Please enter a billing states.\n";
}
	var illegalChars = /[\W_(0-9)]/; // allow only letters
 if ((strng.length < 2) || (strng.length > 2)) {
       error = "Please enter 2 digit mail code for the billing state.\n";
    }
	 else if (illegalChars.test(strng)) {
      error = "The billing state contains illegal characters.\n";
    }
return error;    
}

// check zip

function check_ShipToZip(strng) {
var error="";
if (strng == "") {
   error = "Please enter a contact state.\n";
}
	var illegalChars = /[\W_(A-Z)(a-z)]/; // allow only letters
 if ((strng.length < 5) || (strng.length > 5)) {
       error = "Please enter 5 digit contact zip code.\n";
    }
	 else if (illegalChars.test(strng)) {
      error = "The contact zip code contains illegal characters.\n";
    }
return error;    
}
function check_BillToZip(strng) {
var error="";
if (strng == "") {
   error = "Please enter a billing states.\n";
}
	var illegalChars = /[\W_(A-Z)(a-z)]/; // allow only letters
 if ((strng.length < 5) || (strng.length > 5)) {
       error = "Please enter 5 digit billing zip code.\n";
    }
	 else if (illegalChars.test(strng)) {
      error = "The billing zip code contains illegal characters.\n";
    }
return error;    
}

// check Credit Card Info

function check_CardType(strng) {
var error="";
if ((document.form1.Ecom_Payment_Card_Type[0].checked == false)&&
(document.form1.Ecom_Payment_Card_Type[1].checked == false)) {
	error = "Please select Visa or Mastercard. \n";
}
return error;
    }
	
function check_CardNumber(strng) {
var error="";
if (strng == "") {
   error = "Please enter a credit card number.\n";
}
	var illegalChars = /[\W_(A-Z)(a-z)]/; // allow only letters
 if ((strng.length < 13) || (strng.length > 16)) {
       error = "Please enter a valid credit card number.\n";
    }
	 else if (illegalChars.test(strng)) {
      error = "The credit card number contains illegal characters.\n";
    }
return error;    
}

function check_CardMonth(strng) {
var error="";
if (strng == "") {
   error = "Please enter an exp. month for your credit card.\n";
}
	var illegalChars = /[\W_(A-Z)(a-z)]/; // allow only letters
 if ((strng.length < 2) || (strng.length > 2)) {
       error = "Please enter a valid month for your credit card.\n";
    }
	 else if (illegalChars.test(strng)) {
      error = "The credit card month contains illegal characters.\n";
    }
return error;    
}

function check_CardYear(strng) {
var error="";
if (strng == "") {
   error = "Please enter an exp. year for your credit card.\n";
}
	var illegalChars = /[\W_(A-Z)(a-z)]/; // allow only letters
 if ((strng.length < 4) || (strng.length > 4)) {
       error = "Please enter a valid year for your credit card.\n";
    }
	 else if (illegalChars.test(strng)) {
      error = "The credit card year contains illegal characters.\n";
    }
return error;    
}

function check_CardVeri(strng) {
var error="";
if (strng == "") {
   error = "Please enter a verification number for your credit card.\n";
}
	var illegalChars = /[\W_(A-Z)(a-z)]/; // allow only letters
 if ((strng.length < 2) || (strng.length > 4)) {
       error = "Please enter a valid verification number for your credit card.\n";
    }
	 else if (illegalChars.test(strng)) {
      error = "The credit card verification number contains illegal characters.\n";
    }
return error;    
}
// check company name

function check_Company(strng) {
var error="";
if (strng == "") {
   error = "Please enter School/Organization. \n";
}
return error;    
}

// check agree to terms

function check_Terms(string) {
var error="";
if (document.form1.terms.checked == false) {
	error = "Please read and agree to the privacy policy and terms and conditions. \n";
}
return error;
    }
	
//Check to see if Netscape 4, if so, run function
if (document.layers){ 
self.location.href="detect.html";
}
//-->


 function textLimit(field, maxlen) {
if (field.value.length > maxlen + 1)
alert('Maximum character limit is ' + maxlen + '. Your short description will be truncated.');
if (field.value.length > maxlen)
field.value = field.value.substring(0, maxlen);
} 

function clearfields(){
for (i=0; i < (document.search_form.elements.length); i++){
if(document.search_form.elements[i].name != 'search_term'){
document.search_form.elements[i].value='';
}
}
}
function change(id, newClass) {
	if ( document.getElementById(id) != null ) {
		document.getElementById(id).className=newClass;
	}
}



function showHide(name, val){
	//alert(name);
	//if(document.getElementById(name).style.display=='none'){
	//alert(name);
	document.getElementById(name).style.display=val;
	//}else{
	//document.getElementById(name).style.display="none";
	//}
}


function grayOut(id) {

document.getElementById(id).style.color="#CCCCCC";

} 




///added
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function validate() {
//alert('go');
var required_fields = new Array();

required_fields[0]=document.contact_form.elements[0].value;
required_fields[1]=document.contact_form.elements[2].value;
required_fields[2]=document.contact_form.elements[3].value;
//alert(document.contact_form.required_fields[0].value);
//alert(required_fields[0]);
var x=0;
for(var i=0; i<required_fields.length; i++){
if(required_fields[i]==''){
MM_showHideLayers('infoform','','show','commentform','','hide');
x++;
}else{
//warning=false;
MM_showHideLayers('infoform','','hide','commentform','','show');
}
}
if(x>0){
alert('Please fill in required fields.');
}
}

//-->
function same_as_billing()
{
    
    var checkbox_status = document.forms[0].elements['same'].checked
    
    if ( !checkbox_status )
    {
        
        document.forms[0].elements['same'].checked = checkbox_status
        document.forms[0].elements['billing_addr1'].value = ''
        document.forms[0].elements['billing_addr2'].value = ''
        document.forms[0].elements['billing_city'].value = ''
        document.forms[0].elements['billing_zip'].value = ''
        document.forms[0].elements['billing_state'].value = ''
    
    }
    else
    {
    
        document.forms[0].elements['same'].checked = checkbox_status
        document.forms[0].elements['billing_addr1'].value =document.forms[0].elements['ship_addr1'].value
        document.forms[0].elements['billing_addr2'].value = document.forms[0].elements['ship_addr2'].value
        document.forms[0].elements['billing_city'].value = document.forms[0].elements['ship_city'].value
        document.forms[0].elements['billing_zip'].value = document.forms[0].elements['ship_zip'].value
        document.forms[0].elements['billing_state'].value = document.forms[0].elements['ship_state'].value
    
    }

}
function toggle_visibility(id) {
var e = document.getElementById(id);
if(e.style.display == 'none')
e.style.display = 'block';
else
e.style.display = 'none';
}



function checkAll(targetform){
	//var myForm = eval(targetform);
	var myForm  = document.getElementById(targetform);
	//alert(document.forms[2].name);
	if(myForm.check.checked == true){	
		for (i=1; i < myForm.elements.length; i++){
			myForm.elements[i].checked = true;
		}
	}else{
		for (i=1; i < myForm.elements.length; i++){
			myForm.elements[i].checked = false;	
		}	
	}	
}




function checkBoxes(position){
if(document.profile_form.inlinefloat2[position].checked==true){
var checks=0;
	for (i=0; i<document.profile_form.inlinefloat2.length; i++){
		if (document.profile_form.inlinefloat2[i].checked==true){
		checks++;
		}
	}
	if(checks>3){
	alert("Please check only three talents.");
	document.profile_form.inlinefloat2[position].checked=false;
	}
}else{
	var checks=0;
	for (i=0; i<document.profile_form.inlinefloat2.length; i++){
		if (document.profile_form.inlinefloat2[i].checked==true){
		checks++;
		}
	}
	if(checks==3){
	 $(".alarm").slideUp("fast");
	//document.profile_form.inlinefloat2[position].checked=false;
	}

}
};
