/*GLobal Variables:*/
var mailto ="m"+"a"+"i"+"l"+"t"+"o"+":";
var theLocation = "@"+"dieta-c"+"lub" + "."+"co"+"."+"il";

/*Functions*/

function updateTotal () {
	var selectedIndex = $('total_units').selectedIndex;
	var isCarnet = ($('total_units').options[selectedIndex].text.indexOf('13') > -1);
	if (0 == $('total_units').value && !isCarnet) {
		$('balance').value = '';
		$('balance_reduct').value = '';
		return false;
	}
	var tmpArray = $('total_units').value.split('_');
	var balance = formatOutput(tmpArray[1]);
	$('balance').value = balance;
	var online_special = $('online_special').value;
	var discount_factor = (100 - online_special)/100;
	$('balance_reduct').value = formatOutput(parseInt(tmpArray[1]*discount_factor));
	$('total_instalments').innerHTML = '';
	if (isCarnet) {
		max_instalments = 3;
	}
	else {
		max_instalments = tmpArray[0];
	}
	var text;
	var value;
	if ($('total_instalments')) {
		addOption('total_instalments',0,messages.select, false);
		for (var i = 1;i <= max_instalments;i++) {
			if (1 == i) {
				text = messages.one_instalment;
				value = i;
			}
			else {
				value = i;
				bla = tmpArray[1]*1/i;
				text = i + " " + messages.instalments;
			}
			addOption('total_instalments',value,text, false);
		}
	}
	return true;
}

function updateSubgroup () {
	var service_id = $('prices_id').value;
	if (service_id.indexOf ('5') > -1) {
		hide ('onlineDetails');
	}
	else {
		show('onlineDetails');
	}
	var randomNum = Math.round(10000*Math.random());
	var req = new Request({
		method: 'get',
		url: 'prices.php?service=' + service_id + '&ieRefresh=' + randomNum,
 		data: { 'do' : '1' },
		onRequest: function() {
			$('total_units').innerHTML = '';
			addOption ('total_units', 0, 'בחר מסלול בצטרפות', false);
		},
		onComplete: function(response) {
			if (req.status == 200) {
				if (response == '-1') {
					var value = 0;
					var text = "problem getting the list";
					addOption('total_units',value,text, false);
				}
				else {
					var priceList = eval('(' + response + ')');
					for (var i = 0;i <priceList.length;i++) {
						var value = priceList[i]['period'] + "_" + priceList[i]['price'];
						var text = priceList[i]['content'];
						addOption('total_units',value,text, false);
					}
					updateTotal ();
					var selectedOption = $('prices_id').selectedIndex;

					var comments = ($('prices_id').options[$('prices_id').selectedIndex].text);
					
					comments = comments.replace(/<\/?strong/gi,"");
					$('orderDetails').value = comments;
					$('comments').innerHTML = comments; 
				}
	        } 
			else {
				var value = 0;
				var text = "problem getting the list";
				addOption('total_units',value,text, false);
	        }
		}
	}).send();
}

function doar(correspondent, subject){
   location = mailto + correspondent + theLocation + "?subject=" + subject + ": From [Please add your name here]" ;
}

function doarPic() {
	location = mailto + 'webmaster' + theLocation + "?subject=Pictures for my success story: From [Please add your name here]" ;
}

function setFromDate (objDate) {
	var dateInput = document.getElementById('date');
	dateInput.DateChooser.setEarliestDate(objDate);
	dateInput.DateChooser.updateFields();
	return true;
}

function setToDate (objDate) {
	var dateInput = document.getElementById('toDate');
	dateInput.DateChooser.setEarliestDate(objDate);
	dateInput.DateChooser.updateFields();
	return true;
}

function toggleSub (nId) {
	if (document.getElementById('subMenu' + nId).style.display != 'none') {
		hide('subMenu' + nId);
		document.getElementById('menuItem' + nId).className = document.getElementById('menuItem' + nId).className.replace(/opened/gi,'closed');
		document.getElementById('bullet'+ nId).src = 'Images/bullet.gif';
	}
	else {
		document.getElementById('bullet'+ nId).src = 'Images/bulletCurrent.gif';
		show('subMenu' + nId);
		document.getElementById('menuItem' + nId).className = document.getElementById('menuItem' + nId).className.replace(/closed/gi,'opened');
	}
}

function toggleCCAction (actionPage) {
	oForm = document.forms['registration'];
	if ($('ccard').checked) {
		show('ccardBlock');
	}
	else {
		hide ('ccardBlock');
	}
	/*oForm.action = actionPage;*/
}

function validateRegistration(isLoggedIn) {
	var oForm = document.forms['registration'];
	var errBoxes = $('registration').getElements('span.error');
	errBoxes.each(function(errBox){
		errBox.parentNode.removeChild(errBox);
	});
	if (document.forms['registration'].mib.value != '') {
		return false;
	}
	try {
		var validator = new FormValidator('registration');
	}
	catch (e) {
		alert(e);
	}

	var hasErrors = false;
	try {
		if (0 == oForm.prices_id.value) {
			validator.displayError('prices_id',messages.service_empty);
			hasErrors = true;
		}
		if (!validator.validateMail('email')) {
			validator.displayError('email',messages.email_empty);
			hasErrors = true;
		}
		if (validator.isEmpty('name')) {
			validator.displayError('name',messages.name_empty);
			hasErrors = true;
		}
		if (validator.isEmpty('surname')) {
			validator.displayError('surname',messages.name_empty);
			hasErrors = true;
		}
		if (!validator.validatePhone('phone')) {
			validator.displayError('phone',messages.invalid_phone);
			hasErrors = true;
		}
		if (0 == oForm.total_units.value) {
			validator.displayError('total_units',messages.total_units);
			hasErrors = true;
		}
		if (0 == oForm.total_instalments.value) {
			validator.displayError('total_instalments',messages.set_instalments);
			hasErrors = true;
		}
		if ($('onlineDetails') && $('onlineDetails').style.display != 'none') { 
			if (validator.isEmpty('weight')) {
				validator.displayError('weight',messages.general_empty);
				hasErrors = true;
			}
			else if (!validator.isCurrency('weight')) {
				validator.displayError('weight',messages.floatNum_only);
				hasErrors = true;
			}
			if (validator.isEmpty('height')) {
				validator.displayError('height',messages.general_empty);
				hasErrors = true;
			}
			else if (!validator.isCurrency('height')) {
				validator.displayError('height',messages.floatNum_only);
				hasErrors = true;
			}
			/*if (validator.isEmpty('wrist')) {
				validator.displayError('wrist',messages.general_empty);
				hasErrors = true;
			}
			else if (!validator.isCurrency('wrist')) {
				validator.displayError('wrist',messages.floatNum_only);
				hasErrors = true;
			}*/
			if (!validator.isEmpty('desired_weight') && !validator.isCurrency('desired_weight')) {
				validator.displayError('desired_weight',messages.intNum_only);
				hasErrors = true;
			}
			if (validator.isEmpty('occupation')) {
				validator.displayError('occupation',messages.general_empty);
				hasErrors = true;
			}
			if (oForm.isActive.checked && validator.isEmpty('sports')) {
				validator.displayError('sports',messages.general_empty);
				hasErrors = true;
			}
		}
		if (!validator.isValidUsername('title')) {
			validator.displayError('title',messages.username_too_short);
			hasErrors = true;
		}
		/* Validating password only if new registration: */
		if (!isLoggedIn /*|| (isLoggedIn && oForm.password.value != '@@@@@@@@@@@@@@@@@@@@')*/) {
			if (!validator.isValidPassword('password')) {
				validator.displayError('password',messages.password_too_short);
				hasErrors = true;
			}
			else if (oForm.password.value != oForm.password2.value) {
				validator.displayError('password',messages.password_no_match);
				hasErrors = true;
			}
		}
		if (validator.isEmpty('arith')) {
			validator.displayError('arith',messages.arith);
			hasErrors = true;
		}
		else if (!validator.isFigures('arith')) {
			validator.displayError('arith',messages.intNum_only);
			hasErrors = true;
		}
		if (!oForm.terms.checked) {
			validator.displayError('terms',messages.terms);
		}
		if (validator.isEmpty('taz')) {
			validator.displayError('taz',messages.taz_empty);
			hasErrors = true;
		}
		else if (!validator.isValidTaz('taz')) {
			validator.displayError('taz',messages.taz_not_valid);
			hasErrors = true;
		}
		if ($('ccard') && $('ccard').checked) {
			if (validator.isEmpty('cc_fname')) {
				validator.displayError('cc_fname',messages.general_empty);
				hasErrors = true;
			}
			if (validator.isEmpty('cc_surname')) {
				validator.displayError('cc_surname',messages.general_empty);
				hasErrors = true;
			}
			if (validator.isEmpty('cc_number')) {
				validator.displayError('cc_number',messages.general_empty);
				hasErrors = true;
			}
			else if (!validator.isFigures('cc_number')) {
				validator.displayError('cc_number',messages.intNum_only);
				hasErrors = true;
			}
			if (validator.isEmpty('cc_cvc')) {
				validator.displayError('cc_cvc',messages.general_empty);
				hasErrors = true;
			}
			else if (!validator.isFigures('cc_cvc')) {
				validator.displayError('cc_cvc',messages.intNum_only);
				hasErrors = true;
			}
		}
	}
	catch(e) {
		alert(e);
		return false;
	}
	if (hasErrors) {
		displayModalDialogBox('<h3>' + messages.alertMsg + '</h3>\n' + messages.general_error);
		return false;
	}
	else {
		return true;
	}
}

function validateforumSignUp() {
	var oForm = document.forms['forumSignUp'];
	var errBoxes = $('forumSignUp').getElements('span.error');
	errBoxes.each(function(errBox){
		errBox.parentNode.removeChild(errBox);
	});
	if (document.forms['forumSignUp'].mib.value != '') {
		return false;
	}
	try {
		var validator = new FormValidator('forumSignUp');
	}
	catch (e) {
		alert(e);
	}
	var hasErrors = false;
	if (!validator.validateMail('email')) {
		validator.displayError('email',messages.email_empty);
		hasErrors = true;
	}
	if (validator.isEmpty('name')) {
		validator.displayError('name',messages.name_empty);
		hasErrors = true;
	}
	if (validator.isEmpty('surname')) {
		validator.displayError('surname',messages.surname_empty);
		hasErrors = true;
	}
	if (!validator.isValidUsername('title')) {
		validator.displayError('title',messages.username_too_short);
		hasErrors = true;
	}
	if (!validator.isValidPassword('password')) {
		validator.displayError('password',messages.password_too_short);
		hasErrors = true;
	}
	else if (oForm.password.value != oForm.password2.value) {
		validator.displayError('password',messages.password_no_match);
		hasErrors = true;
	}
	if ($('client').value != '') {
		if (validator.isEmpty('taz')) {
			validator.displayError('taz',messages.taz_empty);
			hasErrors = true;
		}
		else if (!validator.isValidTaz('taz')) {
			validator.displayError('taz',messages.taz_not_valid);
			hasErrors = true;
		}
		if (oForm.supportgroups_id && oForm.supportgroups_id.value == 0) {
			validator.displayError('supportgroups_id',messages.select_support_group);
			hasErrors = true;
		}
	}
	if (validator.isEmpty('arith')) {
		validator.displayError('arith',messages.arith);
		hasErrors = true;
	}
	else if (!validator.isFigures('arith')) {
		validator.displayError('arith',messages.intNum_only);
		hasErrors = true;
	}
	if (!oForm.terms.checked) {
		validator.displayError('terms',messages.terms);
	}
	if (hasErrors) {
		displayModalDialogBox('<h3>' + messages.alertMsg + '</h3>\n' + messages.general_error);
		return false;
	}
	else {
		return true;
	}
}

var hasErrors = false;
function validate() {
	var oForm = document.forms['contact'];
	if (oForm.mib.value != '') {
		return false;
	}
	try {
		var validator = new FormValidator('contact');
	}
	catch (e) {
		alert(e);
	}
	if (hasErrors) {
		var errBoxes = $('contact').getElements('span.error');
		errBoxes.each(function(errBox){
			errBox.parentNode.removeChild(errBox);
		});
	}

	hasErrors = false;
	if (!validator.validateMail('email')) {
		validator.displayError('email',messages.email_empty);
		hasErrors = true;
	}
	if (validator.isEmpty('name')) {
		validator.displayError('name',messages.name_empty);
		hasErrors = true;
	}
	if (validator.isEmpty('surname')) {
		validator.displayError('surname',messages.surname_empty);
		hasErrors = true;
	}
	if (!validator.validatePhone('phone')) {
		validator.displayError('phone',messages.invalid_phone);
		hasErrors = true;
	}
	/*
	if (validator.isEmpty('city')) {
		validator.displayError('city',messages.city_empty);
		hasErrors = true;
	}
	*/
	if (hasErrors) {
		displayModalDialogBox(messages.general_error);
		return false;
	}
	else {
		return true;
	}
}

function validateCoupon() {
	var oForm = document.forms['contact'];
	if (oForm.mib.value != '') {
		return false;
	}
	try {
		var validator = new FormValidator('contact');
	}
	catch (e) {
		alert(e);
	}
	if (hasErrors) {
		var errBoxes = $('contact').getElements('span.error');
		errBoxes.each(function(errBox){
			errBox.parentNode.removeChild(errBox);
		});
	}

	hasErrors = false;
	if (!validator.validateMail('email')) {
		validator.displayError('email',messages.email_empty);
		hasErrors = true;
	}
	if (validator.isEmpty('name')) {
		validator.displayError('name',messages.name_empty);
		hasErrors = true;
	}
	if (!validator.validatePhone('phone')) {
		validator.displayError('phone',messages.invalid_phone);
		hasErrors = true;
	}
	if (oForm.supportgroups_id.value == 0) {
		validator.displayError('supportgroups_id',messages.select_support_group);
		hasErrors = true;
	}
	if (hasErrors) {
		displayModalDialogBox(messages.general_error);
		return false;
	}
	else {
		return true;
	}
}

function validateStory() {
	var hasErrors = false;
	var oForm = document.forms['story'];
	if (oForm.mib.value != '') {
		return false;
	}
	try {
		var validator = new FormValidator('story');
	}
	catch (e) {
		alert(e);
	}
	var errBoxes = $('story').getElements('span.error');
	errBoxes.each(function(errBox){
		errBox.parentNode.removeChild(errBox);
	});

	if (validator.isEmpty('name')) {
		validator.displayError('name',messages.name_empty);
		hasErrors = true;
	}
	if (validator.isEmpty('surname')) {
		validator.displayError('surname',messages.surname_empty);
		hasErrors = true;
	}
	if (!validator.validateMail('email')) {
		validator.displayError('email',messages.email_empty);
		hasErrors = true;
	}
	if (validator.isEmpty('my_story')) {
		validator.displayError('my_story',messages.my_story_empty);
		hasErrors = true;
	}
	var story = oForm.my_story.value;
	story = story.replace(/\n/gi,'<br />');
	oForm.my_story.value = story;
	if (hasErrors) {
		displayModalDialogBox(messages.general_error);
		return false;
	}
	else {
		return true;
	}
}

/*Generated by responder.co.il*/
function responder_validation(form) {
	var inputs = form.getElementsByTagName('input');
	var selects = form.getElementsByTagName('select');
	var filter = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+){1,4}$/;

	for (a=0; a<inputs.length; a++) {
		switch (inputs[a].name) {
			case 'fields[subscribers_email]':
				if (!filter.test(inputs[a].value)) {
					alert(messages.email_empty);
					inputs[a].focus();
					return false;
				}

				break;
		}
	}

	for (a=0; a<selects.length; a++) {
		switch (selects[a].name) {
		}
	}

	return true;
}

function get_food_listData() {
	if ('' == $('foodBox').value) {
		return false;
	}
	var tmp_array = $('foodBox').value.split('_');
	var current_food_id = tmp_array[1];
	var current_selected_index = 1*tmp_array[0];
	var current_food_title = nameArray[current_selected_index].title;
	takeMe(current_food_id,current_food_title, current_selected_index);
}


function takeMe(itemId,itemTitle, num) {
	$('nameBox').value = itemTitle;
	hide('foodBox');
	var foodInfo = $('template').innerHTML;
	foodInfo = foodInfo.replace(/__TITLE__/gi,nameArray[num]['title']);
	foodInfo = foodInfo.replace(/__CONTENT__/gi,nameArray[num]['content']);
	foodInfo = foodInfo.replace(/__PORTION__/gi,nameArray[num]['portion']);
	foodInfo = foodInfo.replace(/__GROUP__/gi,nameArray[num]['group_title']);
	foodInfo = foodInfo.replace(/__UNIT__/gi,nameArray[num]['unit']);
	$('foodInfo').innerHTML = foodInfo;
	$('sublist').innerHTML = '';
	var sb = new StringBuffer();
	for (var i = 0;i < nameArray.length;i++) {
		if (nameArray[i]['food_groups_id'] == nameArray[num]['food_groups_id']) {
			try {
			sb.append('<li>');
			sb.append(nameArray[i]['title']);
			sb.append(' (');
			sb.append(nameArray[i]['portion']);
			sb.append(' ');
			sb.append(nameArray[i]['unit'])
			sb.append(')');
			}
			catch (e) {
				alert(e);
			}
		}
	}
	$('sublist').innerHTML = sb.toString();
	show('substitutes');
}

function suggest() {
	var regXp = new RegExp($('nameBox').value);
	var sb = new StringBuffer();
	$('foodBox').innerHTML = '';
	for (var i = 0;i <nameArray.length;i++) {
		if(regXp.test(nameArray[i]['title'])) {
			var current_food_value = i + "_" + nameArray[i].food_items_id 
			addOption('foodBox',current_food_value,nameArray[i].title, false)
			match = true;
			if ($('foodBox').style.display != 'inline') {
				show('foodBox','inline');
			}
		}
	}
	if ($('foodBox').innerHTML == '' || $('nameBox').value == '') {
		hide('foodBox');
	}
	else {
		show('foodBox');
	}
}


var nameArray;

function getFoodList(container, theUrl,theSync) {
	var req = new Request({
		method: 'get',
		url: theUrl,
 		data: { 'do' : '1' },
		onRequest: function() {
			$('foodBox').innerHTML = '';
		},
		onComplete: function(response) {
			nameArray = eval('(' + response + ')');
			for (var i = 0;i <nameArray.length;i++) {
				nameArray[i]['title'] = nameArray[i]['title'].replace(/\'/,'')
			}
		}
	}).send();
}

function detect_key (event) {
	/* event.key, event.shift, event.control */
	if (event.key == 'down') {
		show('foodBox');
		$('foodBox').focus();
		$('foodBox').value = $('foodBox').options[0].value;
	}
	else {
		suggest();
	}
}	

function setCityList(oSelect) {
	var city_array;
	var resultUrl = 'citylistXHR.php?areas_id=' + oSelect.value;
	var req = new Request({
		method: 'get',
		url: resultUrl,
 		data: { 'do' : '1' },
		onComplete: function(response) {
			if (response == '-1') {
				return false;
			}
			city_array = eval('(' + response + ')');
			for (var i in city_array) {
				if (city_array[i].cities_id) {
					var fixedOption = document.createElement('option');
					fixedOption.value = city_array[i].cities_id;
					fixedOption.text = city_array[i].title;
					try {
						$('supportgroups_city_select').add(fixedOption,null);
					}
					/* IE only */
					catch(e) {
						$('supportgroups_city_select').add(fixedOption);
					}
				}
			}
			delete (req);
			return true;
		}
	}).send();
}

function findSupportGroup (sAreaSelect, oCitySelect) {
	var myArea = $(sAreaSelect).value;
	filterCity(myArea, oCitySelect);
}

function filterCity(myLocation, oSelect) {
	var joinSign = '?';
	var cities_id = oSelect.value;
	var myUrl = 'http://www.dieta-club.co.il/supportGroupList.php';
	if (myLocation != '2')  {
		myUrl += joinSign + 'location=' + myLocation;
		joinSign = '&';
	}
	if (cities_id != '0') {
		myUrl += joinSign + 'cities_id=' + cities_id;
	}
	location = myUrl;
}

function init () {
	detectIe6();
	/* If the page containes a rolling marquee - roll it on! */
	if(document.getElementById('vmarquee')) {
		initializemarquee();
	}
	/* If the page containes a sortable list - initiate it */
	if($('sortable-list')) {
		var sb = new Sortables('sortable-list', {
			/* set options */
			clone:true,
			revert: true,
			/* initialization stuff here */
			initialize: function() { 
				
			},
			/* once an item is selected */
			onStart: function(el) { 
				el.getElement('p').setStyle('background','#add8e6');
			},
			/* when a drag is complete */
			onComplete: function(el) {
				/*el.getElement('p').setStyle('background','#ddd');*/
				//build a string of the order
				
				
				
				//autosubmit if the checkbox says to
				/*if($('auto_submit').checked) {
					//do an ajax request
					var req = new Request({
						url:'/dw-content/sort-save.php',
						method:'post',
						autoCancel:true,
						data:'sort_order=' + sort_order + '&ajax=' + $('auto_submit').checked + '&do_submit=1&byajax=1',
						onRequest: function() {
							$('message-box').set('text','Updating the sort order in the database.');
						},
						onSuccess: function() {
							$('message-box').set('text','Database has been updated.');
						}
					}).send();
				}*/
			}
		});
	}

	if($('calculator')) {
		getFoodList('foodBox', 'foodSrc.php',true);
		$('nameBox').addEvent('keyup',function(event){
			detect_key(event);
		});
		
		$('nameBox').addEvent('click',function() {
			$('nameBox').value = '';
			hide('foodBox');
		});
		
		$('foodBox').addEvent('keyup',function(event){
			if ('enter' == event.key) {
				get_food_listData();
			}
		});
		
		$('foodBox').addEvent('click',get_food_listData);
	}

	if (window.location.search != '') {
		var urlSearch = new PageQuery();
		var currentEntity = urlSearch.getValue('node');
		var currentLang = urlSearch.getValue('lang');
		if (!currentLang) {
			currentLang = 'he';
		}
	}
	var isItemPage = location.href.indexOf('itemPage') > -1;
	if ($('categorySelect') && $('languages_id')) {
		var currentLanguage = $('languages_id').value;
		filterCategoriesByLanguage(currentLanguage);
	}

}

window.onload = init;
