String.prototype.trim = function() {

	return this.replace(/^\s+|\s+$/g,"");

}

String.prototype.ltrim = function() {

	return this.replace(/^\s+/,"");

}

String.prototype.rtrim = function() {

	return this.replace(/\s+$/,"");

}

function contact_error_check(){

	var first 		= document.getElementById('first_name');

	var last 		= document.getElementById('last_name');

	var phone	 	= document.getElementById('phone');

	var email 		= document.getElementById('email');

	var topic 		= document.getElementById('topic');

	var comments 		= document.getElementById('comments');

	

	var errors 		= new Array;

	

	if( !first.value.trim() ) 	 errors.push(' - First name');

	if( !last.value.trim() ) 	 errors.push(' - Last name');

	if( !phone.value.trim() ) 	 errors.push(' - Phone');

	if( !email.value.trim() ) 	 errors.push(' - Email');

	if( !topic.value.trim() ) errors.push(' - Topic');

	if( !comments.value.trim() ) errors.push(' - Comments');

	

	if(errors.length > 0){

		var msg  = '* The following fields are required before submitting form:' + "\n\n";

			msg += errors.join("\n");



		alert(msg);

	}else{

		sendContact();

	}

	

	return false;	

}



function partnership_error_check(){

	var first 		= document.getElementById('p_first_name');

	var last 		= document.getElementById('p_last_name');

	var phone	 	= document.getElementById('p_phone');

	var email 		= document.getElementById('p_email');

	var comments 		= document.getElementById('p_comments');

	

	var errors 		= new Array;

	

	if( !first.value.trim() ) 	 errors.push(' - First name');

	if( !last.value.trim() ) 	 errors.push(' - Last name');

	if( !phone.value.trim() ) 	 errors.push(' - Phone');

	if( !email.value.trim() ) 	 errors.push(' - Email');

	if( !comments.value.trim() ) errors.push(' - Message');

	

	if(errors.length > 0){

		var msg  = '* The following fields are required before submitting form:' + "\n\n";

			msg += errors.join("\n");



		alert(msg);

	}else{

		sendPartnership();

	}

	

	return false;	

}



function signup_error_check(){

	var first 		= document.getElementById('first_name');

	var last 		= document.getElementById('last_name');

	var phone	 	= document.getElementById('phone');

	var email 		= document.getElementById('email');

	var birthday 	= document.getElementById('birth_month');

	

	var errors 		= new Array;

	

	if( !first.value.trim() ) 	 errors.push(' - First name');

	if( !last.value.trim() ) 	 errors.push(' - Last name');

	if( !phone.value.trim() ) 	 errors.push(' - Phone');

	if( !email.value.trim() ) 	 errors.push(' - Email');

	if( !birthday.value.trim() ) errors.push(' - Birthday month');

	

	if(errors.length > 0){

		var msg  = '* The following fields are required before signing up:' + "\n\n";

			msg += errors.join("\n");



		alert(msg);

	}else{

		sendReferral();

	}

	

	return false;	

}



function party_error_check(){
	var first 		= document.getElementById('first_name');
	var last 		= document.getElementById('last_name');
	var phone	 	= document.getElementById('phone');
	var email 		= document.getElementById('email');	
	var date_of_party = document.getElementById('date_of_party');
	var time_of_party = document.getElementById('time_of_party');
	var location = document.getElementById('location');
	var event_type = document.getElementById('event_type');
	var event_type_other = document.getElementById('event_type_other');
	var manicure_service = document.getElementById('manicure_service');
	var pedicure_service = document.getElementById('pedicure_service');
	var waxing_service = document.getElementById('waxing_service');
	var num_people_services = document.getElementById('num_people_services');
	var food_catering = document.getElementById('food_catering');
	var decorations = document.getElementById('decorations');
	var salon_rental = document.getElementById('salon_rental');
	var additional_comments = document.getElementById('additional_comments');

	var errors 		= new Array;	

	if( !first.value.trim() ) 	 errors.push(' - First name');
	if( !last.value.trim() ) 	 errors.push(' - Last name');
	if( !phone.value.trim() ) 	 errors.push(' - Phone');
	if( !email.value.trim() ) 	 errors.push(' - Email');	
	if( !date_of_party.value.trim() ) errors.push(' - Date of Party');
	if( !time_of_party.value.trim() ) 	 errors.push(' - Time of Party');
	if( !location.value.trim() ) errors.push(' - Location');
	if( !event_type.value.trim() && !event_type_other.value.trim() )
	{
		errors.push(' - Event Type or Event Type (Other)');	
	}
	if( !manicure_service.checked && !pedicure_service.checked && !waxing_service.checked )
	{
		errors.push(' - Types of Services (Check at least one)');	
	}
	if( !num_people_services.value.trim() ){ errors.push(' - Number of People receiving services'); }
		else{  
			var num_people = num_people_services.value * 1;			

			if( isNaN(num_people) ){
				errors.push(' - Number of People receiving services must be an integer.');
			}else{
				if(num_people_services.value < 4) errors.push(' - Number of People receiving services is a minimum of 4');
			}
		}
	
	if( !food_catering.value.trim() ) 	 errors.push(' - Food/Drinks Catering');
	if( !decorations.value.trim() ) 	 errors.push(' - Decorations');
	if( !salon_rental.value.trim() ) 	 errors.push(' - Salon Rental');
	if( !additional_comments.value.trim() ) 	 errors.push(' - Additional Comments');
	
	if(errors.length > 0){
		var msg  = '* The following fields are required before booking a party:' + "\n\n";
			msg += errors.join("\n");

		alert(msg);
	}else{
		sendParty();
	}

	return false;
}

//application form
function frmApplication(){
$("#frmApplication").validate({
		rules: {
			first_name: "required",
			last_name: "required",
			phone: "required",
			cell_phone: "required",
			street_addr: "required",
			city: "required",
			state: "required",
			zip: "required",
			email: "required",
			email_confirm: { equalTo: "#email" },
			gender: "required",
			status: "required",
			education_level: "required",
			employer_name: "required",
			employer_city: "required",
			employer_state: "required",
			employer_position: "required",
			employer_responsibilities: "required",
			opening_timeframe: "required",
			hear_about_us: "required",
			location_pref_1: "required",
			location_pref_2: "required",
			location_pref_3: "required",
			assets: "required",
			cash: "required",
			marketable_securities: "required",
			investment_realestate: "required",
			ira: "required",
			residence: "required",
			autos: "required",
			personal_property: "required",
			total_assets: "required",
			bills_payable: "required",
			installation: "required",
			home_mortgage: "required",
			other_realestate_loans: "required",
			liabilities_other: "required",
			total_liabilities: "required",
			total_capital_available: "required"
		},
		invalidHandler: function(e, validator) {
			var errors = validator.numberOfInvalids();

			if (errors) {
				var msg = '* The following fields are required before processing an application:'+"\n\n";
				for( var key in validator.errorMap ) msg += '- '+validator.errorMap[key]+"\n";
				
				alert(msg);
			}
		},
		messages: {
			first_name: "First Name",
			last_name: "Last Name",
			phone: "Phone",
			cell_phone: "Cell Phone",
			street_addr: "Street Address",
			city: "City",
			state: "State",
			zip: "Zip/Postal Code",
			email: "Email Address",
			email_confirm: {
				email_confirm: "Confirm Email Address",
				equalTo: "Email Address and Confirm Email must match."
			},
			gender: "Gender",
			status: "Status",
			education_level: "Education Level",
			employer_name: "Current Employer",
			employer_city: "Employer - City",
			employer_state: "Employer - State",
			employer_position: "Employer - Position",
			employer_responsibilities: "Employer - Responsibilities",
			opening_timeframe: "Opening Time Frame",
			hear_about_us: "How did you hear about us?",
			location_pref_1: "Location Preference: #1",
			location_pref_2: "Location Preference: #2",
			location_pref_3: "Location Preference: #3",
			assets: "Assets",
			cash: "Cash",
			marketable_securities: "Marketable Securities",
			investment_realestate: "Investment Real Estate",
			ira: "401 (k) & IRA",
			residence: "Residence",
			autos: "Autos",
			personal_property: "Personal Property",
			total_assets: "Total Assets",
			bills_payable: "Bills Payable & Credit Cards",
			installation: "Installments Notes & Contracts",
			home_mortgage: "Home Mortgage",
			other_realestate_loans: "Other Real Estate Loans",
			liabilities_other: "Liabilities - Other",
			total_liabilities: "Total Liabilities",
			total_capital_available: "Total capital available to invest"
		},
		errorPlacement: function(error, element) {
			//error.appendTo( element.parent("td").next("td") );
			return false;
		},
		submitHandler: function(form) {
			var options = { 
				target:     '', 
				url:        '../franchise/_pages/franchise.profile_application_sent.php', 
				resetForm: true,
				type: 'post',
				success:    function(responseText, statusText) {
					$("#send_confirmation").html('<strong>thank you, your request has been sent.</strong>');
					setTimeout(function(){$("#send_confirmation").html('');}, 5000);
				} 
			}; 
			
			$('#frmApplication').submit(function() {  
				$(this).ajaxSubmit(options); 
				return false; 
			});
		}
	});
}
					
function signupNewsletter(){
	var email_address = document.getElementById('email_address');

	var urlString = 'email='+email_address.value;
	var myConn = new XHConn();
    if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");

    var fnWhenDone = function (oXML){
		document.getElementById('send_newsletter').innerHTML = '<strong style="color:#297CAD;">thank you for signing up</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';

		email_address.value = '';
	}

	myConn.connect("_pages/newsletter.signup_send.php", "POST", urlString, fnWhenDone);

	return false;
}



function sendContact(){
	var first_name 	= document.getElementById('first_name');
	var last_name 	= document.getElementById('last_name');
	var phone 		= document.getElementById('phone');
	var email 		= document.getElementById('email');
	var topic		= document.getElementById('topic');
	var comments	= document.getElementById('comments');
	
	var urlString = 'first_name='+first_name.value+'&last_name='+last_name.value+'&phone='+phone.value+'&email='+email.value+'&topic='+topic.value+'&comments='+comments.value;

	var myConn = new XHConn();
    if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");

    var fnWhenDone = function (oXML){
		document.getElementById('send_confirmation').innerHTML = '<strong>thank you, your request has been sent.</strong>';

		first_name.value 	= '';
		last_name.value 	= '';
		phone.value 		= '';
		email.value 		= '';
		topic.value 		= '';
		comments.value 		= '';
	}

	myConn.connect("_pages/contact.contact_form_sent.php", "POST", urlString, fnWhenDone);

	return false;
}

function sendPartnership(){
	var first_name 	= document.getElementById('p_first_name');
	var last_name 	= document.getElementById('p_last_name');
	var phone 		= document.getElementById('p_phone');
	var email 		= document.getElementById('p_email');
	var message		= document.getElementById('p_comments');

	var urlString = 'first_name='+first_name.value+'&last_name='+last_name.value+'&phone='+phone.value+'&email='+email.value+'&message='+message.value;

	var myConn = new XHConn();
    if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");

    var fnWhenDone = function (oXML){
		document.getElementById('send_confirmation_partnership').innerHTML = '<strong>thank you, your request has been sent.</strong>';

		first_name.value 	= '';
		last_name.value 	= '';
		phone.value 		= '';
		email.value 		= '';
		message.value 		= '';
	}

	myConn.connect("_pages/contact.partnership_form_sent.php", "POST", urlString, fnWhenDone);

	return false;
}

function sendParty(){
	var first_name 	= document.getElementById('first_name');
	var last_name 	= document.getElementById('last_name');
	//var address 	= document.getElementById('address');
	//var city	 	= document.getElementById('city');
	//var state	 	= document.getElementById('state');
	//var zip		 	= document.getElementById('zip');
	var location 	= document.getElementById('location');
	var phone 		= document.getElementById('phone');
	var email 		= document.getElementById('email');
	var date_of_party 	= document.getElementById('date_of_party');
	var time_of_party 	= document.getElementById('time_of_party');
	var event_type	= document.getElementById('event_type');
	var event_type_other = document.getElementById('event_type_other');
	var num_people_services = document.getElementById('num_people_services');
	var additional_comments = document.getElementById('additional_comments');

	//--/

	var services 	= new Array;
	var manicure_service = document.getElementById('manicure_service');
	var pedicure_service = document.getElementById('pedicure_service');
	var waxing_service 	 = document.getElementById('waxing_service');

	if( manicure_service.checked == true ) services.push( manicure_service.value );
	if( pedicure_service.checked == true ) services.push( pedicure_service.value );
	if( waxing_service.checked == true )   services.push( waxing_service.value );

	if( services.length > 0 ) services = services.join(', ');
	else services = '';

	//--/

	var food_catering = document.getElementById('food_catering');

	//--/

	var decorations = document.getElementById('decorations');

	//--/

	var salon_rental = document.getElementById('salon_rental');

	//--/

	var urlString  = 'first_name='+first_name.value+'&last_name='+last_name.value+'&location='+location.value;
		urlString += '&phone='+phone.value+'&email='+email.value+'&date_of_party='+date_of_party.value+'&time_of_party='+time_of_party.value+'&event_type='+event_type.value+'&event_type_other='+event_type_other.value;
		urlString += '&services='+services+'&num_people_services='+num_people_services.value+'&list_of_services='+services;
		urlString += '&food_catering='+food_catering.value+'&decorations='+decorations.value+'&salon_rental='+salon_rental.value+'&additional_comments='+additional_comments.value;

	var myConn = new XHConn();
    if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");

    var fnWhenDone = function (oXML){
		document.getElementById('send_confirmation').innerHTML = '<strong>thank you, your request has been sent.</strong>';

		first_name.value 	= '';
		last_name.value 	= '';
		phone.value 		= '';
		email.value 		= '';
		date_of_party.value = '';
		time_of_party.value = '';
		event_type.value 	= '';
		event_type_other.value 	= '';
		event_type.value 	= '';

		// services
		document.getElementById('manicure_service').checked = false;
		document.getElementById('pedicure_service').checked = false;
		document.getElementById('waxing_service').checked = false;
		
		num_people_services.value = '';
		//list_of_services.value = '';

		// food catering		
		document.getElementById('food_catering').selectedIndex = 0;

		// decorations
		document.getElementById('decorations').selectedIndex = 0
		
		// salon rental
		document.getElementById('salon_rental').selectedIndex = 0

		additional_comments.value = '';
	}

	myConn.connect("_pages/parties.party_register_send.php", "POST", urlString, fnWhenDone);

	return false;
}



function sendReferral(){

	var first_name 	= document.getElementById('first_name');

	var last_name 	= document.getElementById('last_name');

	var phone 		= document.getElementById('phone');

	var email 		= document.getElementById('email');

	var birth_month = document.getElementById('birth_month');

	

	var urlString = 'first_name='+first_name.value+'&last_name='+last_name.value+'&phone='+phone.value+'&email='+email.value+'&birth_month='+birth_month.value;

	

	var myConn = new XHConn();

    if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");

    

    var fnWhenDone = function (oXML){

		document.getElementById('send_confirmation').innerHTML = '<strong>thank you, your request has been sent.</strong>';

		

		first_name.value 	= '';

		last_name.value 	= '';

		phone.value 		= '';

		email.value 		= '';

		birth_month.value 	= '';

	}

	

	myConn.connect("_pages/bella_perks.member_points_send.php", "POST", urlString, fnWhenDone);

	

	return false;

}



function switchContent( contentId, pageName, images ){   

    var urlString = '';

	var split_imgs = null;

	var img = null;

	var br = null;

    

    var myConn = new XHConn();

    if (!myConn) alert("XMLHTTP not available. Try a newer/better browser.");

    

    var fnWhenDone = function (oXML){       

    	document.getElementById(contentId).innerHTML = oXML.responseText;

		if( document.getElementById('frmApplication') ) frmApplication();
		if( document.getElementById('frmRegistration') ) frmRegistration();

		if( document.getElementById('img_container') ) document.getElementById('img_container').innerHTML = '';

		

		if( images != '' ){

			split_imgs = images.split(',');

			

			for(var i = 0; i < split_imgs.length; i++){

				var remove_ext = split_imgs[i].split('.');

				

				/*

				img = document.createElement('img');

				img.alt = remove_ext[0].replace('_', ' ');

				img.src = 'images/'+split_imgs[i];

				

				document.getElementById('img_container').appendChild(img);

				*/

				

				if( document.getElementById('img_container') ) {

					document.getElementById('img_container').innerHTML += '<img src="images/'+split_imgs[i]+'" border="0">';

				

					if( i < split_imgs.length-1 ) document.getElementById('img_container').innerHTML += '<br /><br /><br />';

				}

			}

		}

    }

    

     myConn.connect("_pages/"+pageName, "GET", urlString, fnWhenDone);

}





/** Ajax Functions **/



if( document.implementation.hasFeature("XPath", "3.0") ){

	if( typeof XMLDocument == "undefined" ){ XMLDocument = Document; }

  XMLDocument.prototype.selectNodes = function(cXPathString, xNode){

    if( !xNode ) { xNode = this; } 

		var oNSResolver = this.createNSResolver(this.documentElement)

		var aItems = this.evaluate(cXPathString, xNode, oNSResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)

		var aResult = [];

		for( var i = 0; i < aItems.snapshotLength; i++){aResult[i] =  aItems.snapshotItem(i);	}

		return aResult;

	}

	XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode){

		if( !xNode ) { xNode = this; } 

		var xItems = this.selectNodes(cXPathString, xNode);

		if( xItems.length > 0 ){return xItems[0];	}

		else{return null;	}

	}

	Element.prototype.selectNodes = function(cXPathString){

		if(this.ownerDocument.selectNodes){	return this.ownerDocument.selectNodes(cXPathString, this);}

		else{throw "For XML Elements Only";}

	}

	Element.prototype.selectSingleNode = function(cXPathString){	

		if(this.ownerDocument.selectSingleNode){return this.ownerDocument.selectSingleNode(cXPathString, this);	}

		else{throw "For XML Elements Only";}

	}

}



function XHConn()

{

  var xmlhttp, bComplete = false;

  try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }

  catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }

  catch (e) { try { xmlhttp = new XMLHttpRequest(); }

  catch (e) { xmlhttp = false; }}}

  if (!xmlhttp) return null;

  this.connect = function(sURL, sMethod, sVars, fnDone)

  {

    if (!xmlhttp) return false;

    bComplete = false;

    sMethod = sMethod.toUpperCase();



    try {

      if (sMethod == "GET")

      {

        xmlhttp.open(sMethod, sURL+"?"+sVars, true);

        sVars = "";

      }

      else

      {

        xmlhttp.open(sMethod, sURL, true);

        xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");

        xmlhttp.setRequestHeader("Content-Type",

          "application/x-www-form-urlencoded");

      }

      xmlhttp.onreadystatechange = function(){

        if (xmlhttp.readyState == 4 && !bComplete)

        {

          bComplete = true;

          fnDone(xmlhttp);

        }};

      xmlhttp.send(sVars);

    }

    catch(z) { return false; }

    return true;

  };

  return this;

}



/** End Ajax Functions **/