var LAYOUTS = "_layouts/";

//BROWSER DETECTION
var ns4 = document.layers;
var ns6 = document.getElementById && !document.all;
var ie4 = document.all;
 
function DetectBrowser(){ //Detectarea browserului folosit
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.opera5=(navigator.userAgent.indexOf("Opera")>-1 && document.getElementById)?1:0
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")>-1
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
	return this
}
var bw=new DetectBrowser();

//IMAGES
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

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_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function MM_showHideLayers() {
  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 MM_reloadPage() {  //reloads the window if resized
  location.reload();
}
//onresize = MM_reloadPage;


function Go(url){
	document.location = url;
}


function popup(adresa, w, h, scr){
var l=(screen.availWidth-w)/2 , t=(screen.availHeight-h)/2;
win=window.open(adresa,"_blank","width="+w+",height="+h+",left="+l+",top="+t+",statusbar=no,toolbar=no,scrollbars="+scr+",navbar=no");
win.focus();
}
 

//FIELDS
function imgField(field, img){
/*
	if(img == "over") {
		border_color 	= "#3574A1";
		border_style 	= "dashed";
		bgcolor 		= "#F6F6F6";
	}else {
		border_color 	= "#cccccc";
		border_style 	= "solid";
		bgcolor 		= "#F0F5F9";
	}
	//field.style.borderColor 	= border_color;
	field.style.borderStyle 	= border_style;
	field.style.backgroundColor = bgcolor;
*/
}

//BUTS
function imgBut(but, img){
	but.src = img;
}


//Reset Form
function resetForm(formName){
	if(ns6) form = eval("document.getElementById('"+formName+"')");
	else if(ns4) form = eval("document."+formName);
	else form = eval("document.all."+formName);
	form.reset();
}



function focus2(field){
	if(field.value == 0) field.value = '';
}	


function blur2(field){
	if(field.value == '') field.value = '0';
}	


function fieldValue(field_name){
	if(ns6) field = eval("document.getElementById('"+field_name+"')");
	else if(ns4) field = eval("document."+field_name);
	else field = eval("document.all."+field_name);
	return field.value;
}

function setFieldValue(field_name, val){
	if(ns6) field = eval("document.getElementById('"+field_name+"')");
	else if(ns4) field = eval("document."+field_name);
	else field = eval("document.all."+field_name);
	return field.value;
	field.value = val;
}

function writeIn(field_name, val){
	if(ns6) field = eval("document.getElementById('"+field_name+"')");
	else if(ns4) field = eval("document."+field_name);
	else field = eval("document.all."+field_name);
	field.innerHTML = val;
}



function formatNR(nr, dec)
{
str = "" + Math.round(eval(nr) * Math.pow(10,dec));
while(str.length < dec)
	str = "0" + str;
decidx = str.length - dec;
tmp = str.substring(0,decidx);
if(tmp == '')
	tmp = '0';
if(dec > 0)
	tmp = tmp + '.' + str.substring(decidx, str.length);
return(tmp);
}



function getkey(e)
{
if (window.event)
   return window.event.keyCode;
else if (e)
   return e.which;
else
   return null;
}


function goodchars(e, goods)
{
var key, keychar;
key = getkey(e);
if (key == null) return true;

// get character
keychar = String.fromCharCode(key);
keychar = keychar.toLowerCase();
goods = goods.toLowerCase();

// check goodkeys
if (goods.indexOf(keychar) != -1)
	return true;

// control keys
if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
   return true;

// else return false
return false;
}



function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} // Ends the "getSelectedRadio" function

function getSelectedRadioValue(buttonGroup) {
   // returns the value of the selected radio button or "" if no button is selected
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
         return buttonGroup[i].value;
      } else { // The button group is just the one button, and it is checked
         return buttonGroup.value;
      }
   }
} // Ends the "getSelectedRadioValue" function

function getSelectedCheckbox(buttonGroup) {
   // Go through all the check boxes. return an array of all the ones
   // that are selected (their position numbers). if no boxes were checked,
   // returned array will be empty (length will be zero)
   var retArr = new Array();
   var lastElement = 0;
   if (buttonGroup[0]) { // if the button group is an array (one check box is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            retArr.length = lastElement;
            retArr[lastElement] = i;
            lastElement++;
         }
      }
   } else { // There is only one check box (it's not an array)
      if (buttonGroup.checked) { // if the one check box is checked
         retArr.length = lastElement;
         retArr[lastElement] = 0; // return zero as the only array value
      }
   }
   return retArr;
} // Ends the "getSelectedCheckbox" function

function getSelectedCheckboxValue(buttonGroup) {
   // return an array of values selected in the check box group. if no boxes
   // were checked, returned array will be empty (length will be zero)
   var retArr = new Array(); // set up empty array for the return values
   var selectedItems = getSelectedCheckbox(buttonGroup);
   if (selectedItems.length != 0) { // if there was something selected
      retArr.length = selectedItems.length;
      for (var i=0; i<selectedItems.length; i++) {
         if (buttonGroup[selectedItems[i]]) { // Make sure it's an array
            retArr[i] = buttonGroup[selectedItems[i]].value;
         } else { // It's not an array (there's just one check box and it's selected)
            retArr[i] = buttonGroup.value;// return that value
         }
      }
   }
   return retArr;
} // Ends the "getSelectedCheckBoxValue" function
  

//Email Validation
function emailValid(email)
{
  var result = false
  var theStr = new String(email)
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function formSubmit(form, act){
	document.forms[form].action = act;
	document.forms[form].submit();
}





function fieldOb(field_name){
	if(ns6) field = eval("document.getElementById('"+field_name+"')");
	else if(ns4) field = eval("document."+field_name);
	else field = eval("document.all."+field_name);
	return field;
}

function changeRowColor(row, color){
	rOb = fieldOb(row);
	rOb.bgColor = color;  
}






//Validates a field
function ValidateField(elem, name){
	if((elem.value == '')||(elem.value == 0))	{
    		alert('INCOMPLETE!');
    		elem.focus();
   	 		return(false);
   	}
	else if(name.indexOf('email') != -1){
			 	if(!emailValid(elem.value)){
					alert('Invalid email address!');
					elem.focus();
   	 				return(false);
				}
	}
	return(true);
}

//Just Validates a field without (alert & focus)
function JustValidateField(elem){
	if((elem.value == '')||(elem.value == 0))	return(false);
	else if(name.indexOf('email') != -1){
			 	if(!emailValid(elem.value)){
   	 				return(false);
				}
	}
	return(true);
}


//Validate form for Mandatory fields to be filled properly
function Validate(form, fields){
	if(fields == '') return(true);
   	mandatory_fields = fields.split(',');
	for(i=0; i<mandatory_fields.length; i++){
		if(mandatory_fields[i] != ''){
			if(mandatory_fields[i].indexOf('|')){
				//groupped fields (at least one of them must be filled/selected)
				mandatory_group_fields = mandatory_fields[i].split('|');
				valid = 0;
				for(j=0; j<mandatory_group_fields.length; j++){
					elem = eval('form.' + mandatory_group_fields[j]);
					if(ValidateField(elem, mandatory_group_fields[j]) ) valid = 1;
					else return(false);
				}
				if(!valid){
					//no fields filled
					elem = eval('form.' + mandatory_group_fields[0]);
					if(!ValidateField(elem, mandatory_group_fields[0])) return(false);
				}
				
			}else{
				//single field
				elem = eval('form.' + mandatory_fields[i]);
				if(!ValidateField(elem, mandatory_fields[i])) return(false);
			}
		}// if(!'')
	}//for
	
	return(true);
}




function ValidateLogin(form){
   	if((form.login_user.value == '') || (form.login_user.value == 'utilizator'))	{
    		alert('Introduceti numele de utilizator!');
    		form.login_user.focus();
   	 	return(false);
   	}
   	if((form.login_pass.value == '') || (form.login_pass.value == 'parola'))	{
    		alert('Introduceti parola!');
    		form.login_pass.focus();
   	 	return(false);
   	}
	return(true);
}



function PasswordReminder(){
	user = document.forms['formLogin'].login_user;
	form = document.forms['formLogin'];
	if(user.value == ''){
   		alert('First insert your username or the email you used to register our service!');
   		user.focus();
	}else if(!emailValid(user.value)){
   		alert('Invalid email address!');
   		user.focus();
	}else{
		document.location = "?password_reminder="+escape(user.value);
	}
}


function Redirect(){
	document.location = url_redirect;	
}


function GotoPage(pag, GET){
	form = document.forms['frms'];
	form.action = PHP_SELF + "?"+GET+"&pag="+pag;
	form.submit();
}


function ShowMenu(nr){
	MM_swapImgRestore();
	for(i=1; i<=menus; i++)
		HideMenu(i);
	tab = fieldOb('tab_menu_'+nr);
	tab.className = 'vizibil';
}

function HideMenu(nr){
	tab = fieldOb('tab_menu_'+nr);
	tab.className = 'ascuns';
}

function InitMenu(img, nr){
	ShowMenu(nr, menus);
	MM_swapImage('m'+nr,'',HTTP+'_layouts/images/menu_over_'+img+'.jpg',1);
}

function InitMenuEn(img, nr){
	ShowMenu(nr, menus);
	MM_swapImage('m'+nr,'',HTTP+'_layouts/images/menu_en_over_'+img+'.jpg',1);
}

function InitMenuAdmin(img, nr){
	MM_swapImage('m'+nr,'',HTTP+'_layouts/images/admin_top_over_'+img+'.jpg',1);
}



function ValidateSearch(url){
	status = document.forms['frm'].status.value;
	
	date1 = document.forms['frm'].start_date.value;
	date2 = document.forms['frm'].end_date.value;

	document.location = url + '&status=' + status + '&date1=' + date1 + '&date2=' + date2;	
}



function ShowHideTab(tab_name){
	tab = fieldOb(tab_name);
	if(tab.className == '') tab.className = 'ascuns';
	else tab.className = '';
}


function checkFormPass(form){
   	if(form.pass_veche.value == '')	{
    		alert('Introduceti parola curenta!');
    		form.pass_veche.focus();
   	 	return(false);
   	}
	
   	if(form.pass_noua_1.value == '')	{
    		alert('Introduceti noua parola!');
    		form.pass_noua_1.focus();
   	 	return(false);
   	}
	
   	if(form.pass_noua_2.value == '')	{
    		alert('Reintroduceti noua parola!');
    		form.pass_noua_2.focus();
   	 	return(false);
   	}
	
   	if(form.pass_noua_1.value != form.pass_noua_2.value)	{
    		alert('Ati reintrodus gresit noua parola!');
    		form.pass_noua_1.focus();
   	 	return(false);
   	}

	return(true);
}





function getSize(type){
	var myWidth = 0; 
	var myHeight = 0;
	if( typeof( window.innerWidth ) == 'number' ) {
	//Non-IE
	myWidth = window.innerWidth;
	myHeight = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
	//IE 6+ in 'standards compliant mode'
	myWidth = document.documentElement.clientWidth;
	myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
	//IE 4 compatible
	myWidth = document.body.clientWidth;
	myHeight = document.body.clientHeight;
	}
	if(type == 'w') return myWidth;
	else return myHeight;
}

function OpenPan(pan){
	var w = getSize('w');
	var h = getSize('h');
	var box_w = parseInt(document.getElementById(pan).style.width.replace('px', ''));
	var box_h = parseInt(document.getElementById(pan).style.height.replace('px', ''));
	
	var total_w = box_w + 73;
	var total_h = box_h + 73;
	
	if(h / 2 - total_h / 2 < 0) t = 0;
	else t = parseInt(h / 2 - total_h / 2);
	l = parseInt(w / 2 - total_w / 2);
		
	document.getElementById(pan).style.top = t + 73;
	document.getElementById(pan).style.left = l;
		
	document.getElementById(pan+'2').style.top = t;
	document.getElementById(pan+'2').style.left = l + box_w - 87;

	document.getElementById('general_div').style.height = document.getElementById('screen').clientHeight;
	document.getElementById('general_div').style.width = w-18;

	document.getElementById('general_div').className = '';
	document.getElementById(pan).className = '';
	document.getElementById(pan+'2').className = '';
}

function ClosePan(pan){
	document.getElementById('general_div').className = 'ascuns';
	document.getElementById(pan).className = 'ascuns';
	document.getElementById(pan+'2').className = 'ascuns';
}

function SearchRecipes(keyword){
	if((keyword == '') || (keyword == '(name, ingredient, category)')){
		alert('Please enter a recipe name, and ingredient, a category or another keyword to search by!');
		return;
	}
	
	keyword = keyword.toLowerCase();
	keyword = keyword.replace(/ /g, '_');
	keyword = keyword.replace(/__/g, '_');
	keyword = keyword.replace(/__/g, '_');
	keyword = keyword.replace(/__/g, '_');
	keyword = keyword.replace(/__/g, '_');
	document.location = HTTP + 'search_'+escape(keyword);
}

function AdvSearchRecipes(keyword){
	if((keyword == '') || (keyword == '(name, ingredient, category)')){
		alert('Please enter a recipe name, and ingredient, a category or another keyword to search by!');
		return;
	}
	
	keyword = keyword.toLowerCase();
	keyword = keyword.replace(/ /g, '_');
	keyword = keyword.replace(/__/g, '_');
	keyword = keyword.replace(/__/g, '_');
	keyword = keyword.replace(/__/g, '_');
	keyword = keyword.replace(/__/g, '_');
	document.location = HTTP + 'search_'+escape(keyword);
}


function AjaxRequest(actionlink){
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null){
	  alert ("Please install the newest version for your browser!");
	  return;
	} 
	
	var url = HTTP + actionlink;
	//url = url+"&sid="+Math.random();
	//alert(url);
	xmlHttp.onreadystatechange = AjaxResponse;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
} 

function GetXmlHttpObject(){
	var xmlHttp=null;
	try { xmlHttp=new XMLHttpRequest(); }
	catch (e) {
	  try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }
	  catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }
	}
	return xmlHttp;
}

function AjaxResponse(){
	if (xmlHttp.readyState==4){
		response=xmlHttp.responseText;	
		
		var update = new Array();
		update = response.split('|ajaxresponse|');
		if(update[0] == 'login'){
			ResponseLogin(update[1]);
		}else if(update[0] == 'register'){
			ResponseRegister(update[1]);
		}else if(update[0] == 'check_user'){
			ResponseCheckUser(update[1]);
		}else if(update[0] == 'edit_profile_1'){
			ResponseOpenProfile(update[1]);
		}else if(update[0] == 'edit_profile_2'){
			ResponseSendProfile(update[1]);
		}else if(update[0] == 'ingredient_suggestions'){
			ResponseIngredientSuggestions(update[1]);
		}else if(update[0] == 'add_to_my_bar'){
			ResponseAddToMyBar(update[1]);
		}else if(update[0] == 'recipes'){
			ResponseRelatedRecipes(update[1]);
		}else if(update[0] == 'vote_recipe'){
			ResponseVoteRecipe(update[1]);
		}
	}
}


function Error(msg, el){
	HideError();
	var message = '<table width="100%" border="0" cellpadding="8" cellspacing="2" bgcolor="#FEBABA" id="errorMsg"> <tr><td bgcolor="#FEEEE7"><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="32" align="left" valign="middle"><img src="'+HTTP+'_layouts/images/error.gif" width="24" height="24"></td> <td align="left" valign="middle" class="textError">'+msg+'</td> <td width="20" align="right" valign="middle"><a href="javascript:HideError();"><img src="'+HTTP+'_layouts/images/close.png" alt="Hide Message" width="16" height="16" border="0"></a></td> </tr> </table></td> </tr></table>';
	document.getElementById(el).innerHTML = message;
	document.getElementById(el).className = '';
}

function Confirm(msg, el){
	HideError();
	var message = '<table width="100%" border="0" cellpadding="8" cellspacing="2" bgcolor="#DBDBDB" id="errorMsg"><tr><td bgcolor="#F2F2F2"><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="32" align="left" valign="middle"><img src="'+HTTP+'_layouts/images/confirm.gif" width="24" height="24"></td> <td align="left" valign="middle" class="textConfirm">'+msg+'</td> <td width="20" align="right" valign="middle"><a href="javascript:HideError();"><img src="'+HTTP+'_layouts/images/close.png" alt="Hide Message" width="16" height="16" border="0"></a></td> </tr> </table></td></tr></table>';
	document.getElementById(el).innerHTML = message;
	document.getElementById(el).className = '';
}

function HideError(){
	if(document.getElementById('errorMsg')) {
		var parent = document.getElementById('errorMsg').parentNode
		parent.removeChild(document.getElementById('errorMsg'));
	}
}

function SendLogin(){
	var user = document.forms['frmLogin'].login_user.value;
	var pass = document.forms['frmLogin'].login_pass.value;
	var remember = 0;
	if(document.forms['frmLogin'].remember.checked) remember = 1;
	if(user == '') {Error('Please fill in username!', 'errorLogin'); return;}
	if(pass == '') {Error('Please fill in password!', 'errorLogin'); return;}
	
	var url = 'index.php?ajax_login&login_user='+escape(user)+'&login_pass='+escape(pass)+'&remember='+remember;
	AjaxRequest(url);
}

function CheckLogin(){
	var user = document.forms['frmLogin'].login_user.value;
	var pass = document.forms['frmLogin'].login_pass.value;
	var remember = 0;
	if(document.forms['frmLogin'].remember.checked) remember = 1;
	if(user == '') {Error('Please fill in username!', 'errorLogin'); return false;}
	if(pass == '') {Error('Please fill in password!', 'errorLogin'); return false;}
	
	return true;
}

function ResponseLogin(response){
	document.getElementById('errorLogin').innerHTML = '';
	if((response == '0') || (response == '')) {Error('Invalid login!', 'errorLogin'); return;}
	ClosePan('login');
	document.getElementById('menu1').className = 'ascuns';
	document.getElementById('menu2').className = '';
	document.getElementById('user_msg').innerHTML = 'Welcome, '+response+' (<a href="'+HTTP+'?logout" class="a9">Logout</a>) check out the <a href="'+HTTP+'new_recipes/" class="a9">new recipes</a>&nbsp;&nbsp;&nbsp;';
}


function SendRegister(){
	document.getElementById('errorRegister').innerHTML = '';
	var fname = document.forms['frmRegister'].fname.value; 				if(fname == '') {Error('Please fill in First Name!', 'errorRegister'); return;}
	var lname = document.forms['frmRegister'].lname.value; 				if(lname == '') {Error('Please fill in Last Name!', 'errorRegister'); return;}
	var email = document.forms['frmRegister'].email.value; 				if(email == '') {Error('Please fill in Email!', 'errorRegister'); return;}
	if( (email.indexOf('@') < 0) || (!email.indexOf('.') < 0) ) {Error('Invalid email address!', 'errorRegister'); return;}
	var user = document.forms['frmRegister'].user.value; 				if(user == '') {Error('Please fill in Username!', 'errorRegister'); return;}
	var pass = document.forms['frmRegister'].pass.value;	 			if(pass == '') {Error('Please fill in Password!', 'errorRegister'); return;}
	var url = document.forms['frmRegister'].url.value;
	var birthday_m = document.forms['frmRegister'].birthday_m.value; 	if(birthday_m == '') {Error('Please select Birthday Month!', 'errorRegister'); return;}
	var birthday_d = document.forms['frmRegister'].birthday_d.value; 	if(birthday_d == '') {Error('Please select Birthday Day!', 'errorRegister'); return;}
	var birthday_y = document.forms['frmRegister'].birthday_y.value; 	if(birthday_y == '') {Error('Please select Birthday Year!', 'errorRegister'); return;}
	var birthday = birthday_y + '-' + birthday_m + '-' + birthday_d;
	
	var url = 'index.php?ajax_register&fname='+escape(fname)+'&lname='+escape(lname)+'&email='+escape(email)+'&user='+escape(user)+'&pass='+escape(pass)+'&url='+escape(url)+'&birthday='+escape(birthday);
	AjaxRequest(url);
}


function SendProfile(){
	document.getElementById('errorProfile').innerHTML = '';
	var fname = document.forms['frmProfile'].fname.value; 				if(fname == '') {Error('Please fill in First Name!', 'errorProfile'); return;}
	var lname = document.forms['frmProfile'].lname.value; 				if(lname == '') {Error('Please fill in Last Name!', 'errorProfile'); return;}
	var email = document.forms['frmProfile'].email.value; 				if(email == '') {Error('Please fill in Email!', 'errorProfile'); return;}
	if( (email.indexOf('@') < 0) || (!email.indexOf('.') < 0) ) {Error('Invalid email address!', 'errorProfile'); return;}
	var url = document.forms['frmProfile'].url.value;
	var pass = document.forms['frmProfile'].pass.value;
	var pass2 = document.forms['frmProfile'].pass2.value;
	if((pass!='') && (pass2=='')) {Error('Please reenter password!', 'errorProfile'); return;}
	if(pass!=pass2) {Error('The 2 passwords do not match!', 'errorProfile'); return;}
	
	var birthday_m = document.forms['frmProfile'].birthday_m.value; 	//if(birthday_m == '') {Error('Please select Birthday Month!', 'errorProfile'); return;}
	var birthday_d = document.forms['frmProfile'].birthday_d.value; 	//if(birthday_d == '') {Error('Please select Birthday Day!', 'errorProfile'); return;}
	var birthday_y = document.forms['frmProfile'].birthday_y.value; 	//if(birthday_y == '') {Error('Please select Birthday Year!', 'errorProfile'); return;}
	
	var birthday = birthday_y + '-' + birthday_m + '-' + birthday_d;
	
	var url = 'index.php?ajax_edit_profile=2&fname='+escape(fname)+'&lname='+escape(lname)+'&email='+escape(email)+'&pass='+escape(pass)+'&url='+escape(url)+'&birthday='+escape(birthday);
	AjaxRequest(url);
}


function SendProfile2(){
	document.getElementById('errorProfile').innerHTML = '';
	var fname = document.forms['frmProfile'].fname.value; 				if(fname == '') {Error('Please fill in First Name!', 'errorProfile'); return false;}
	var lname = document.forms['frmProfile'].lname.value; 				if(lname == '') {Error('Please fill in Last Name!', 'errorProfile'); return false;}
	var email = document.forms['frmProfile'].email.value; 				if(email == '') {Error('Please fill in Email!', 'errorProfile'); return false;}
	if( (email.indexOf('@') < 0) || (!email.indexOf('.') < 0) ) {Error('Invalid email address!', 'errorProfile'); return false;}
	var url = document.forms['frmProfile'].url.value;
	var pass = document.forms['frmProfile'].pass.value;
	var birthday_m = document.forms['frmProfile'].birthday_m.value; 	if(birthday_m == '') {Error('Please select Birthday Month!', 'errorProfile'); return false;}
	var birthday_d = document.forms['frmProfile'].birthday_d.value; 	if(birthday_d == '') {Error('Please select Birthday Day!', 'errorProfile'); return false;}
	var birthday_y = document.forms['frmProfile'].birthday_y.value; 	if(birthday_y == '') {Error('Please select Birthday Year!', 'errorProfile'); return false;}
	var birthday = birthday_y + '-' + birthday_m + '-' + birthday_d;
	
	return true;
}


function OpenProfile(){
	document.getElementById('loadingProfile').className = '';
	document.getElementById('tbProfile').className = 'ascuns';
	document.getElementById('errorProfile').innerHTML = '';
	OpenPan('profile');	
	var url = 'index.php?ajax_edit_profile=1';
	AjaxRequest(url);
}

function ResponseOpenProfile(response){
	document.getElementById('loadingProfile').className = 'ascuns';
	document.getElementById('tbProfile').className = '';
	vars = response.split('|sep|');
	document.getElementById('profile_user').innerHTML = vars[0];
	document.forms['frmProfile'].fname.value = vars[1];
	document.forms['frmProfile'].lname.value = vars[2];
	document.forms['frmProfile'].email.value = vars[3];
	document.forms['frmProfile'].url.value = vars[4];
	document.forms['frmProfile'].pass.value = '';
	document.forms['frmProfile'].birthday_m.value = vars[5];
	document.forms['frmProfile'].birthday_d.value = vars[6];
	document.forms['frmProfile'].birthday_y.value = vars[7];
}

function ResponseSendProfile(response){
	if(response == '1') Confirm('Profile updated successfully!', 'errorProfile');
	else Error('Update error!', 'errorProfile');
}


function ResponseRegister(response){
	if((response == '0') || (response == '')) {Error('Username already taken!', 'errorLogin'); return;}
	ClosePan('login');
	document.getElementById('menu1').className = 'ascuns';
	document.getElementById('menu2').className = '';
	document.getElementById('user_msg').innerHTML = 'Your account has been created! &nbsp;&nbsp; Welcome, '+response+' (<a href="'+HTTP+'?logout" class="a9">Logout</a>) check out the <a href="'+HTTP+'new_recipes/" class="a9">new recipes</a>&nbsp;&nbsp;&nbsp;';
}

function SendCheckUser(user){
	var url = 'index.php?ajax_check_user='+escape(user);
	AjaxRequest(url);
}

function ResponseCheckUser(response){
	if(response == '') document.getElementById('checkUser').innerHTML = '<img src="'+HTTP+'_layouts/images/question.gif" alt="Start typing to see if username exists or not" width="16" height="16" hspace="5">';
	else if(response == '0') document.getElementById('checkUser').innerHTML = '<img src="'+HTTP+'_layouts/images/valid.gif" width="16" height="16" hspace="5">';
	else document.getElementById('checkUser').innerHTML = '<img src="'+HTTP+'_layouts/images/invalid.gif" width="16" height="16" hspace="5">';
}

function showSubmenu(){
	var w = getSize('w');
	document.getElementById('submenu').style.left = (w - 998) / 2 + 414;
	document.getElementById('submenu').className = '';
}

function hideSubmenu(){
	if(document.getElementById('submenu').className == '') {
		MM_swapImgRestore();
		document.getElementById('submenu').className = 'ascuns';
	}
}

function OpenSubmitRecipe(){
	OpenPan('recipe');	
	document.getElementById('ifrRecipe').src = HTTP+'/index.php?ajax_submit_recipe=1';
}

function OpenEditRecipe(id){
	OpenPan('recipe');	
	document.getElementById('ifrRecipe').src = HTTP+'/index.php?ajax_edit_recipe='+id;
}


function OpenSubmitRecipeAdmin(){
	OpenPan('recipe');	
	document.getElementById('ifrRecipe').src = '?ajax_submit_recipe=1';
}

function OpenEditRecipeAdmin(id){
	OpenPan('recipe');	
	document.getElementById('ifrRecipe').src = '?ajax_edit_recipe='+id;
}


function addIngredient(){
	visible_ingredients++;
	document.getElementById('tb_ingredient_'+visible_ingredients).className = '';
}

function removeIngredient(id){
	document.getElementById('divIngredients').removeChild(document.getElementById('tb_ingredient_'+id));
}

function ValidateRecipe1(frm){
	if(frm.name.value == '') {Error('Please fill in Name!', 'errorRecipe'); frm.name.focus(); return false;}
	for(i=1; i<=50; i++){
		if((document.getElementById('tb_ingredient_'+i)) && (document.getElementById('tb_ingredient_'+i).className == '')){
			var f = eval('frm.qty_'+i);
			if(f.value == '') {Error('Please fill in Qty!', 'errorRecipe'); f.focus(); return false;}
			var f = eval('frm.ingredient_'+i);
			if(f.value == '') {Error('Please fill in Ingredient!', 'errorRecipe'); f.focus(); return false;}
		}
	}
	if(frm.instructions.value == '') {Error('Please fill in Instructions!', 'errorRecipe'); frm.instructions.focus(); return false;}
	return true;
}

function ValidateRecipe2(frm){
	if(frm.source.value == '') {Error('Please fill in Source!', 'errorRecipe2'); frm.source.focus(); return false;}
	if(frm.history.value == '') {Error('Please fill in History!', 'errorRecipe2'); frm.history.focus(); return false;}
	return true;
}

function SubmitRecipe(){
	var frm = document.forms['frmRecipe'];
	var step = frm.step.value;
	if(step == 1){
		//STEP 1
		var valid = ValidateRecipe1(frm);
		if(valid) {
			//move to step 2
			document.getElementById('s2_name').innerHTML = frm.name.value;
			document.getElementById('s2_instructions').innerHTML = frm.instructions.value;
			var ingredients_preview = '';
			for(i=1; i<=50; i++){
				if((document.getElementById('tb_ingredient_'+i)) && (document.getElementById('tb_ingredient_'+i).className == '')){
					var qty = eval('frm.qty_'+i);
					var ingr = eval('frm.ingredient_'+i);
					var u = eval('frm.unit_'+i);
					var ut = u.options[u.selectedIndex].text;
					ingredients_preview += ingr.value+' - '+qty.value+' '+ut+'<br>';
				}
			}
			document.getElementById('s2_ingredients').innerHTML = ingredients_preview;

			document.getElementById('tbRecipe1').className = 'ascuns';
			document.getElementById('tbRecipe2').className = '';
			frm.step.value = 2;
		}
		return false;
	}else{
		var valid = ValidateRecipe2(document.forms['frmRecipe']);
		//alert(valid);
		return valid;
	}
}

function BackRecipe(){
	var frm = document.forms['frmRecipe'];
	var step = frm.step.value;
	document.getElementById('tbRecipe1').className = '';
	document.getElementById('tbRecipe2').className = 'ascuns';
	frm.step.value = 1;
}

function RecipeSetPhoto(img){
	//alert(img);	
}

function ShowSuggestions(f, nr){
	var is = document.getElementById('is');
	var isi = document.getElementById('isi');
	if(is.className == 'ascuns') is.className = '';
	var top = findPosY(f) - document.getElementById('divIngredients').scrollTop;
	is.style.top = top - 160;
	is.style.left = findPosX(f);
	isi.innerHTML = '<img src="'+HTTP+'_layouts/images/small_loading.gif" alt="Loading..." width="16" height="16" vspace="8">';
	//get suggestions
	AjaxRequest('index.php?ajax_ingredient_suggestions='+escape(f.value)+'&field='+nr);
}

function HideSuggestions(){
	document.getElementById('is').className = 'ascuns';
}

function ResponseIngredientSuggestions(response){
	document.getElementById('isi').innerHTML = response; 
}



 function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

  function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }
  
  
  
function OpenSearch(){
	document.getElementById('errorSearch').innerHTML = '';
	OpenPan('search');	
}



function SubmitFilter(frm){
	var keyword = frm.keyword.value;
	var categories = '';
	for(i=0; i<100; i++){
		var f = eval('frm.categories_'+i);
		if((f) && (f.checked)) categories += f.value + ',';
	}
	var ingredients = '';
	for(i=1; i<=50; i++){
		if((document.getElementById('tb_ingredient_'+i)) && (document.getElementById('tb_ingredient_'+i).className == '')){
			var ingr = eval('frm.ingredient_'+i);
			if(ingr.value != '') ingredients += escape(ingr.value) + ',';
		}
	}
	if(categories != '') categories = categories.substr(0, categories.length-1);
	if(ingredients != '') ingredients = ingredients.substr(0, ingredients.length-1);
	var url = '?keyword='+keyword+'&categories='+categories+'&ingredients='+ingredients;
	document.location = HTTP+'recipes/'+url;
}

function SubmitFilter2(frm){
	var keyword = frm.keyword.value;
	var categories = '';
	for(i=0; i<100; i++){
		var f = eval('frm.categories_'+i);
		if((f) && (f.checked)) categories += f.value + ',';
	}
	var ingredients = '';
	for(i=1; i<=50; i++){
		if((document.getElementById('tb_ingredient_'+i)) && (document.getElementById('tb_ingredient_'+i).className == '')){
			var ingr = eval('frm.ingredient_'+i);
			if(ingr.value != '') ingredients += escape(ingr.value) + ',';
		}
	}
	if(categories != '') categories = categories.substr(0, categories.length-1);
	if(ingredients != '') ingredients = ingredients.substr(0, ingredients.length-1);
	var url = '&keyword='+keyword+'&categories='+categories+'&ingredients='+ingredients;
	document.location = '?recipes'+url;
}


function SubmitSearch(frm){
	var keyword = frm.keyword.value;
	var url = '?keyword='+keyword;
	document.location = HTTP+'recipes/'+url;
}

function SubmitAdvSearch(frm){
	var keyword = frm.keyword.value;
	var ingredients = frm.ingredients.value;
	var categories = '';
	for(i=0; i<100; i++){
		var f = eval('frm.categories_'+i);
		if((f) && (f.checked)) categories += f.value + ',';
	}
	if(categories != '') categories = categories.substr(0, categories.length-1);
	var url = '?keyword='+keyword+'&categories='+categories+'&ingredients='+ingredients;
	document.location = HTTP+'recipes/'+url;
}


function AddToMyBar(id){
	var url = 'index.php?ajax_add_to_my_bar='+id;
	AjaxRequest(url);
}
function ResponseAddToMyBar(msg){
	document.getElementById('my_bar_response').innerHTML = msg;
}

var pag = 1;
function RelatedRecipes(x, categories_ids){
	if(pag+x > 0){
		pag = pag+x;
		var url = 'index.php?ajax_recipes&categories='+categories_ids+'&pag='+pag;
		document.getElementById('ajax_recipes').innerHTML = '<img src="'+HTTP+'_layouts/images/small_loading.gif" alt="Loading..." width="16" height="16" vspace="8">';
		AjaxRequest(url);
	}
}
function ResponseRelatedRecipes(msg){
	document.getElementById('ajax_recipes').innerHTML = msg;
}




function starRate(nr) {
	for (i = 1; i <= nr; i++) {
		obj = MM_findObj('stars_' + i);
		obj.src = HTTP+'_layouts/images/s1.jpg';
	}
	while (i <= 5) {
		obj = MM_findObj('stars_' + i);
		obj.src = HTTP+'_layouts/images/s0.jpg';
		i++;
	}
	document.forms['formRating'].nr_stars.value = nr;
}

function VoteRecipe(){
	var id = document.forms['formRating'].id.value;
	var stars = document.forms['formRating'].nr_stars.value;
	var url = 'index.php?ajax_vote_recipe='+id+'&rating='+stars;
	AjaxRequest(url);
}
function ResponseVoteRecipe(msg){
	document.getElementById('vote_recipe_response').innerHTML = msg;
}

function ModalWindow(url, h){
	document.getElementById('win').style.height = h;
	document.getElementById('ifrWin').style.height = h-70;
	OpenPan('win');	
	document.getElementById('ifrWin').src = url;
}

