if ('undefined' == typeof String.prototype.trim) {
	String.prototype.trim = function() {
		return this.replace(/^\s+/, '').replace(/\s+$/, '');
	}
}

if ('undefined' == typeof Array.prototype.findIndex) {
	Array.prototype.findIndex = function(value){
		var ctr = "";
		for (var i=0; i < this.length; i++) {
			if (this[i] == value) {
				return i;
			}
		}
		return ctr;
	}
}


function GetE(elementId)
{
	return document.getElementById(elementId);
}


function checkRequiredInput(inputId) {
	var sInput = GetE(inputId).value.trim();
	if (sInput.length == 0) return false;
	return true;
}

function checkAndSubmitUpdateProfileForm() {
	var errMsg = "";	
	var emailVal1 = GetE('b_email_1').value.trim();			
	var emailVal2 = GetE('b_email_2').value.trim();			
	var emailVal3 = GetE('b_email_3').value.trim();			
	var emailVal4 = GetE('b_email_4').value.trim();			
	var emailVal5 = GetE('b_email_5').value.trim();			
	var cancelPolicyVal = GetE('b_number').value.trim();				
	var inputs = document.getElementsByTagName('input');
	var isCheckedCCType = false;

	for(var i=0; i<inputs.length; i++){
		if(inputs[i].getAttribute('type')=='checkbox' && inputs[i].checked == true){
		  isCheckedCCType = true;
			break;
		}
	}

	if (!checkRequiredInput('b_address')) errMsg = errMsg + ' - Enter Address\n';	
	if (!checkEmail(emailVal1,true)) errMsg = errMsg + ' - Enter Email 1 correctly\n';	
	if (!checkEmail(emailVal2,false)) errMsg = errMsg + ' - Enter Email 2 correctly or leave that field empty\n';	
	if (!checkEmail(emailVal3,false)) errMsg = errMsg + ' - Enter Email 3 correctly or leave that field empty\n';	
	if (!checkEmail(emailVal4,false)) errMsg = errMsg + ' - Enter Email 4 correctly or leave that field empty\n';	
	if (!checkEmail(emailVal5,false)) errMsg = errMsg + ' - Enter Email 5 correctly or leave that field empty\n';		
	if (!checkphone(document.getElementById('b_number').value,true)) errMsg = errMsg + ' - Enter toll-free Phone Correctly\n';				
	if (!checknumber(document.getElementById('b_area_tax').value.trim(),true)) errMsg = errMsg + ' - Enter correct Area Tax\n';	
	if (!checknumber(document.getElementById('b_bed_tax').value.trim(),true)) errMsg = errMsg + ' - Enter correct Bed Tax\n';		
	if (!isCheckedCCType) errMsg = errMsg + ' - Check at least one Credit Card Type\n';		
	if (!checkRequiredInput('b_cancel_policy')) errMsg = errMsg + ' - Enter Cancellation Policy\n';	


	if (errMsg != "") {
		alert("Please, provide follow required information: \n" + errMsg);
		return false;		
	} else {
		document.forms['profile_form'].submit();
		return true;
	}
}

var propArr = new Array();
var delPropArr = new Array();
var propsCnt = 0;

function addProperty() {
	var p_type_val = 0;
	var p_type_name = document.getElementById('propName').value.trim();
	
	if (p_type_val == -1) {
		alert('Please, select the type of property.');
	} else {
		propsCnt = propsCnt + 1;		
		var re = /(pf_[0-9]+)/g;		
		var pf_qry_raw_content = document.getElementById('qryFeaturesContent').innerHTML;
		var pf_qry_content = pf_qry_raw_content.replace(re, "$1_" + propsCnt);		
		var layOutDiv = document.getElementById('addPropertyLayout');
		var newDiv = document.createElement('div');
		var divIdName = 'property_type_' + propsCnt;
		newDiv.setAttribute('id',divIdName);
		newDiv.innerHTML = '<input type="hidden" name="property_id_' + propsCnt + '" id="property_id_' + propsCnt + '" value=""/><input type="hidden" name="' + divIdName + '" id="' + divIdName + '" value="' + p_type_name + '"/><table cellpadding="0" cellspacing="3" border="0" width="100%" class="propTbl"><tr><td colspan="7" class="lablefield4">Property Type: ' + p_type_name + '</td></tr><tr><td colspan="7" style="font-size:8px;">&nbsp;</td></tr><tr><td colspan="7" class="lablefield5">Default prices for each day of week:</td></tr><tr><td class="lablefield3">Mon</td><td class="lablefield3">Tue</td><td class="lablefield3">Wed</td><td class="lablefield3">Thu</td><td class="lablefield3">Fri</td><td class="lablefield3">Sat</td><td class="lablefield3">Sun</td></tr><tr><td><input type="text" name="p_mon_amount_' + propsCnt + '" id="p_mon_amount_' + propsCnt + '" maxlength="10" size="4" value="" /><font class="lablefield6">$</font></td><td><input type="text" name="p_tue_amount_' + propsCnt + '" id="p_tue_amount_' + propsCnt + '" maxlength="10" size="4" /><font class="lablefield6">$</font></td><td><input type="text" name="p_wed_amount_' + propsCnt + '" id="p_wed_amount_' + propsCnt + '" maxlength="10" size="4" /><font class="lablefield6">$</font></td><td><input type="text" name="p_thu_amount_' + propsCnt + '" id="p_thu_amount_' + propsCnt + '" maxlength="10" size="4" /><font class="lablefield6">$</font></td><td><input type="text" name="p_fri_amount_' + propsCnt + '" id="p_fri_amount_' + propsCnt + '" maxlength="10" size="4" /><font class="lablefield6">$</font></td><td><input type="text" name="p_sat_amount_' + propsCnt + '" id="p_sat_amount_' + propsCnt + '" maxlength="10" size="4" /><font class="lablefield6">$</font></td><td><input type="text" name="p_sun_amount_' + propsCnt + '" id="p_sun_amount_' + propsCnt + '" maxlength="10" size="4" /><font class="lablefield6">$</font></td></tr><tr><td colspan="7" style="font-size:8px;">&nbsp;</td></tr><tr><td colspan="7" class="lablefield5">Availability per day:&nbsp;<input type="text" name="p_avail_' + propsCnt + '" id="p_avail_' + propsCnt + '" maxlength="10" size="5" /></td></tr><tr><td colspan="7" style="font-size:8px;">&nbsp;</td></tr><tr><td colspan="7" class="lablefield5">Available for update/cancel by client&nbsp;<input type="text" name="p_uc_avail_' + propsCnt + '" id="p_uc_avail_' + propsCnt + '" maxlength="10" size="5" />&nbsp;days</td></tr><tr><td colspan="7" style="font-size:8px;">&nbsp;</td></tr><tr><td colspan="7">' + pf_qry_content + '</td></tr><tr><td colspan="7" align="right"><input type="button" name="delBtn" id="delBtn" value="Delete Property" onClick="deleteProperty(' + propsCnt + ');" /></td></tr></table><br/>';
		layOutDiv.appendChild(newDiv);	
		propArr.push(propsCnt);
		var f_elm = document.getElementById("p_mon_amount_" + propsCnt);
		f_elm.focus();
	}
}

function deleteProperty(id) {
	if (confirm('Are you sure? That action cannot be undone!')) {
		var layOutDiv = document.getElementById('addPropertyLayout');
		var oldDiv = document.getElementById('property_type_' + id);
		var oldDivIdVal = document.getElementById('property_id_' + id).value;
		layOutDiv.removeChild(oldDiv);
		var arrPos = propArr.findIndex(id);
		propArr.splice(arrPos,1);		
		delPropArr.push(oldDivIdVal);		
	} 	
}

function checkAndSubmitUpdatePropertiesForm() {
	var errMsg = "";	

	if (propArr.length == 0) {
		errMsg = errMsg + ' - Add at least one property\n';				
	} else {
		for(i=0; i<propArr.length; i++) {
			if (!checkinteger(document.getElementById('p_mon_amount_' + propArr[i]).value.trim(),true)) {
				errMsg = errMsg + ' - Enter All Default Prices Correctly (only integer)\n';			
				break;				
			}
			if (!checkinteger(document.getElementById('p_tue_amount_' + propArr[i]).value.trim(),true)) {
				errMsg = errMsg + ' - Enter All Default Prices Correctly (only integer)\n';			
				break;				
			}
			if (!checkinteger(document.getElementById('p_wed_amount_' + propArr[i]).value.trim(),true)) {
				errMsg = errMsg + ' - Enter All Default Prices Correctly (only integer)\n';			
				break;				
			}
			if (!checkinteger(document.getElementById('p_thu_amount_' + propArr[i]).value.trim(),true)) {
				errMsg = errMsg + ' - Enter All Default Prices Correctly (only integer)\n';			
				break;				
			}
			if (!checkinteger(document.getElementById('p_fri_amount_' + propArr[i]).value.trim(),true)) {
				errMsg = errMsg + ' - Enter All Default Prices Correctly (only integer)\n';			
				break;				
			}
			if (!checkinteger(document.getElementById('p_sat_amount_' + propArr[i]).value.trim(),true)) {
				errMsg = errMsg + ' - Enter All Default Prices Correctly (only integer)\n';			
				break;				
			}
			if (!checkinteger(document.getElementById('p_sun_amount_' + propArr[i]).value.trim(),true)) {
				errMsg = errMsg + ' - Enter All Default Prices Correctly (only integer)\n';			
				break;				
			}
		}
		
		for(i=0; i<propArr.length; i++) {	
			if (!checkinteger(document.getElementById('p_avail_' + propArr[i]).value.trim(),true)) {		
				errMsg = errMsg + ' - Enter All Default Prices Correctly (only integer)\n';			
				break;				
			}
		}
	}
	
	
	if (errMsg != "") {
		alert("Please, provide follow required information: \n" + errMsg);
		return false;		
	} else {
		if (confirm('Are you sure you ready to update?')) {		
			document.getElementById('lstIDs').value = propArr.join(","); 		
			document.getElementById('lstDelIDs').value = delPropArr.join(","); 					
			document.forms['properties_form'].submit();
			return true;
		}
	}
}


function init_properties () {
	
	for(i=0;i<WDDXqryGetMemberProperties['id'].length;i++) {
	
		var p_id = WDDXqryGetMemberProperties['id'][i];	
		var p_type_val = WDDXqryGetMemberProperties['d_type_id'][i];
		var p_type_name = WDDXqryGetMemberProperties['d_type_name'][i];	
		var p_uc_avail = WDDXqryGetMemberProperties['d_num_change_days'][i];			
		var p_pos = WDDXqryGetMemberPricing['d_property_id'].findIndex(p_id);		
		var p_mon_amount = WDDXqryGetMemberPricing['d_monday_price'][p_pos];
		var p_tue_amount = WDDXqryGetMemberPricing['d_tuesday_price'][p_pos];
		var p_wed_amount = WDDXqryGetMemberPricing['d_wednesday_price'][p_pos];
		var p_thu_amount = WDDXqryGetMemberPricing['d_thursday_price'][p_pos];
		var p_fri_amount = WDDXqryGetMemberPricing['d_friday_price'][p_pos];
		var p_sat_amount = WDDXqryGetMemberPricing['d_saturday_price'][p_pos];
		var p_sun_amount = WDDXqryGetMemberPricing['d_sunday_price'][p_pos];
		var p_avail = WDDXqryGetMemberPricing['d_available_per_day'][p_pos];
		
		propsCnt = propsCnt + 1;	


		var re1 = new RegExp('(pf_[0-9]+)', 'g');
		var pf_qry_raw_content = document.getElementById('qryFeaturesContent').innerHTML;
		var pf_qry_content = pf_qry_raw_content.replace(re1, "$1_" + propsCnt);		

		for(j=0;j<WDDXqryGetMemberFtr2Prp['id'].length;j++) {
			if(WDDXqryGetMemberFtr2Prp['id'][j] == p_id) {
				var regExpVar = '(id=\"?pf_' + WDDXqryGetMemberFtr2Prp['d_feature_id'][j] + '_' + propsCnt +'\"?)';
				var re2 = new RegExp(regExpVar, 'g');			
				pf_qry_content = pf_qry_content.replace(re2, '$1 checked="checked" ');		
			}
		}

		var layOutDiv = document.getElementById('addPropertyLayout');
		var newDiv = document.createElement('div');
		var divIdName = 'property_type_' + propsCnt;
		newDiv.setAttribute('id',divIdName);
		newDiv.innerHTML = '<input type="hidden" name="property_id_' + propsCnt + '" id="property_id_' + propsCnt + '" value="' + p_id + '"/><input type="hidden" name="' + divIdName + '" id="' + divIdName + '" value="' + p_type_name + '"/><table cellpadding="0" cellspacing="3" border="0" width="100%" class="propTbl"><tr><td colspan="7" class="lablefield4">Property Type: ' + p_type_name + '</td></tr><tr><td colspan="7" style="font-size:8px;">&nbsp;</td></tr><tr><td colspan="7" class="lablefield5">Default prices for each day of week:</td></tr><tr><td class="lablefield3">Mon</td><td class="lablefield3">Tue</td><td class="lablefield3">Wed</td><td class="lablefield3">Thu</td><td class="lablefield3">Fri</td><td class="lablefield3">Sat</td><td class="lablefield3">Sun</td></tr><tr><td><input type="text" name="p_mon_amount_' + propsCnt + '" id="p_mon_amount_' + propsCnt + '" maxlength="10" size="4" value="' + p_mon_amount + '"/><font class="lablefield6">$</font></td><td><input type="text" name="p_tue_amount_' + propsCnt + '" id="p_tue_amount_' + propsCnt + '" maxlength="10" size="4" value="' + p_tue_amount + '"/><font class="lablefield6">$</font></td><td><input type="text" name="p_wed_amount_' + propsCnt + '" id="p_wed_amount_' + propsCnt + '" maxlength="10" size="4" value="' + p_wed_amount + '"/><font class="lablefield6">$</font></td><td><input type="text" name="p_thu_amount_' + propsCnt + '" id="p_thu_amount_' + propsCnt + '" maxlength="10" size="4" value="' + p_thu_amount + '"/><font class="lablefield6">$</font></td><td><input type="text" name="p_fri_amount_' + propsCnt + '" id="p_fri_amount_' + propsCnt + '" maxlength="10" size="4" value="' + p_fri_amount + '"/><font class="lablefield6">$</font></td><td><input type="text" name="p_sat_amount_' + propsCnt + '" id="p_sat_amount_' + propsCnt + '" maxlength="10" size="4" value="' + p_sat_amount + '"/><font class="lablefield6">$</font></td><td><input type="text" name="p_sun_amount_' + propsCnt + '" id="p_sun_amount_' + propsCnt + '" maxlength="10" size="4" value="' + p_sun_amount + '"/><font class="lablefield6">$</font></td></tr><tr><td colspan="7" style="font-size:8px;">&nbsp;</td></tr><tr><td colspan="7" class="lablefield5">Availability per day:&nbsp;<input type="text" name="p_avail_' + propsCnt + '" id="p_avail_' + propsCnt + '" maxlength="10" size="5" value="' + p_avail + '"/></td></tr><tr><td colspan="7" style="font-size:8px;">&nbsp;</td></tr><tr><td colspan="7" class="lablefield5">Available for update/cancel by client&nbsp;<input type="text" name="p_uc_avail_' + propsCnt + '" id="p_uc_avail_' + propsCnt + '" maxlength="10" size="5" value="' + p_uc_avail + '"/>&nbsp;days</td></tr><tr><td colspan="7" style="font-size:8px;">&nbsp;</td></tr><tr><td colspan="7">' + pf_qry_content + '</td></tr><tr><td colspan="7" align="right"><input type="button" name="delBtn" id="delBtn" value="Delete Property" onClick="deleteProperty(' + propsCnt + ');" /></td></tr></table><br/>';
		layOutDiv.appendChild(newDiv);	
		propArr.push(propsCnt);
	}

}

function checkRequiredSelect(selectID,defaultVal) {
	var sSelect = GetE(selectID).value;	
	if (sSelect == defaultVal) return false;
	return true;
}

function soldOutInvChecked () {
	if (document.getElementById('issoldout').checked) {
		document.getElementById('mon_price').disabled = true;	
		document.getElementById('tue_price').disabled = true;			
		document.getElementById('wed_price').disabled = true;					
		document.getElementById('thu_price').disabled = true;			
		document.getElementById('fri_price').disabled = true;			
		document.getElementById('sat_price').disabled = true;			
		document.getElementById('sun_price').disabled = true;			
		document.getElementById('available').disabled = true;			
	} else {
		document.getElementById('mon_price').disabled = false;	
		document.getElementById('tue_price').disabled = false;			
		document.getElementById('wed_price').disabled = false;					
		document.getElementById('thu_price').disabled = false;			
		document.getElementById('fri_price').disabled = false;			
		document.getElementById('sat_price').disabled = false;			
		document.getElementById('sun_price').disabled = false;			
		document.getElementById('available').disabled = false;			
	}
}

function checkAndSubmitUpdateInventoryForm() {
	var errMsg = "";	
	var typeSelVal = document.getElementById('propTypeSel').value.trim();

	if(document.getElementById('mon_price').value.trim() != '' || document.getElementById('tue_price').value.trim() != '' || document.getElementById('wed_price').value.trim() != '' || document.getElementById('thu_price').value.trim() != '' || document.getElementById('fri_price').value.trim() != '' || document.getElementById('sat_price').value.trim() != '' || document.getElementById('sun_price').value.trim() != '' || document.getElementById('available').value.trim() != '' || document.getElementById('issoldout').checked) {
		if (typeSelVal == '') errMsg = errMsg + ' - Select property(-ies) to update\n';
		if (!checkdate(document.getElementById('start_date').value.trim(),true)) errMsg=errMsg + ' - Enter correct start range date\n';
		if (!checkdate(document.getElementById('end_date').value.trim(),true)) errMsg = errMsg + ' - Enter correct end range date\n'; 	
	}

	if (!checkinteger(document.getElementById('mon_price').value.trim(),false)) errMsg = errMsg + ' - Enter correct integer Monday amount or leave that field empty\n'; 	
	if (!checkinteger(document.getElementById('tue_price').value.trim(),false)) errMsg = errMsg + ' - Enter correct integer Tuesday amount or leave that field empty\n'; 	
	if (!checkinteger(document.getElementById('wed_price').value.trim(),false)) errMsg = errMsg + ' - Enter correct integer Wednesday amount or leave that field empty\n'; 	
	if (!checkinteger(document.getElementById('thu_price').value.trim(),false)) errMsg = errMsg + ' - Enter correct integer Thursdya amount or leave that field empty\n'; 	
	if (!checkinteger(document.getElementById('fri_price').value.trim(),false)) errMsg = errMsg + ' - Enter correct integer Friday amount or leave that field empty\n'; 	
	if (!checkinteger(document.getElementById('sat_price').value.trim(),false)) errMsg = errMsg + ' - Enter correct integer Saturday amount or leave that field empty\n'; 	
	if (!checkinteger(document.getElementById('sun_price').value.trim(),false)) errMsg = errMsg + ' - Enter correct integer Sunday amount or leave that field empty\n'; 	
	if (!checkinteger(document.getElementById('available').value.trim(),false)) errMsg = errMsg + ' - Enter correct integer availability value or leave that field empty\n'; 	

	if (errMsg != "") {
		alert("Please, provide follow required information: \n" + errMsg);
		return false;		
	} else {
		document.forms['inventory_form'].submit();
		return true;
	}
}

function checkAndSubmitMemberOrderForm() {
	var errMsg = "";	
	var emailVal = GetE('f_email').value.trim();				

	if (!checkdate(document.getElementById('f_book_date').value.trim(),true)) errMsg = errMsg + ' - Enter submit order date correctly\n';		
	if (!checkdate(document.getElementById('f_start_date').value.trim(),true)) errMsg = errMsg + ' - Enter check-in date correctly\n';		
	if (!checkdate(document.getElementById('f_end_date').value.trim(),true)) errMsg = errMsg + ' - Enter check-out date correctly\n';		
	if (!checkinteger(document.getElementById('f_total').value.trim(),true)) errMsg = errMsg + ' - Enter Order total correctly\n';		
	if (!checkRequiredInput('f_first_name')) errMsg = errMsg + ' - Enter First Name\n';		
	if (!checkRequiredInput('f_last_name')) errMsg = errMsg + ' - Enter Last Name\n';			
	if (!checkEmail(emailVal,true)) errMsg = errMsg + ' - Enter Contact Email correctly\n';	
	if (!checkRequiredSelect('f_country_id',-1)) errMsg = errMsg + ' - Select Country\n'; 	
	if (!checkRequiredSelect('f_state_id',-1)) errMsg = errMsg + ' - Select State\n'; 		
	if (!checkRequiredInput('f_city')) errMsg = errMsg + ' - Enter City\n';					
	if (!checkRequiredInput('f_address')) errMsg = errMsg + ' - Enter Personal Address\n';				
	if (!checkzip(document.getElementById('f_zip').value.trim(),true)) errMsg = errMsg + ' - Enter Personal Zip Code\n';		
	if (!checkRequiredSelect('f_cc_type_id',-1)) errMsg = errMsg + ' - Select Credit Card Type\n'; 		
	if (!checkcreditcard(document.getElementById('f_cc_num').value,true)) errMsg = errMsg + ' - Enter Valid Credit Card Number\n'; 			

	if (!checkinteger(document.getElementById('f_cvv').value.trim(),true)) errMsg = errMsg + ' - Enter Card Security Code correctly\n';		
	if (!checkRequiredSelect('f_cc_exp_mon',-1)) errMsg = errMsg + ' - Select Card Expiration Month\n'; 	
	if (!checkRequiredSelect('f_cc_exp_yr',-1)) errMsg = errMsg + ' - Select Card Expiration Year\n'; 
	if (!checkRequiredInput('f_cc_name')) errMsg = errMsg + ' - Enter Name on Card\n';			
	if (!checkRequiredSelect('f_cc_country_id',-1)) errMsg = errMsg + ' - Select Billing Country\n'; 
	if (!checkRequiredSelect('f_cc_state_id',-1)) errMsg = errMsg + ' - Select Billing State\n'; 	
	if (!checkRequiredInput('f_cc_city')) errMsg = errMsg + ' - Enter Billing City\n';						
	if (!checkRequiredInput('f_cc_address')) errMsg = errMsg + ' - Enter Billing Address\n';			
	if (!checkzip(document.getElementById('f_cc_zip').value.trim(),true)) errMsg = errMsg + ' - Enter Billing Zip Code\n';		

	if (errMsg != "") {
		alert("Please, provide follow required information: \n" + errMsg);
		return false;		
	} else {
		document.forms['memberOrderdetailsForm'].submit();
		return true;
	}
}

function checkAndSubmitMemberOrderSearchForm() {
	var errMsg = "";	
	var emailVal = GetE('ord_email').value.trim();				

	if (!checkinteger(document.getElementById('ord_order_id').value.trim(),false)) errMsg = errMsg + ' - Enter correct integer order number or leave that field empty\n'; 	
	if (!checkEmail(emailVal,false)) errMsg = errMsg + ' - Enter Order Email correctly or leave that field empty\n';	
	if (!checkdate(document.getElementById('ord_date').value.trim(),false)) errMsg = errMsg + ' - Enter submit order date correctly or leave that field empty\n';		
	if (!checkdate(document.getElementById('ord_book_date').value.trim(),false)) errMsg = errMsg + ' - Enter within booking range date correctly or leave that field empty\n';		

	if (errMsg != "") {
		alert("Please, provide follow required information: \n" + errMsg);
		return false;		
	} else {
		document.forms['memberOrderSearchForm'].submit();
		return true;
	}
}