/**
*	akeditable-  in place editor
*	author: Amit Kumar Singh 
* 	project url : http://amiworks.co.in/talk/akeditable-jquery-inplace-editor/ 
 * 	Based on jeditable by Mika Tuupola, Dylan Verheul
 *	http://www.appelsiini.net/projects/jeditable
**/
/**
  * Version 1.0.0
  *  @param String  url             POST URL  to send edited content to.
  *  @param String  element_id      Element ID of the element that you want to convert to editable area.
  *  @param Hash  settings	option to be used. options are type:(  textarea, text), name:(name of the textare to be used  it has to be same as element_id) ,width,height, submit:( name of the submit button to show)
  *   
  **/
function akedit(url,element_id,settings,rights)
{
	if(document.getElementById('frm'+element_id))
		return false; //form is already thier so no need to do it again. 10:40 PM 1/4/2008 amit singh
    
	if(document.getElementById('akebutton')) {
			reset(old_content,objtoedit);//another button is already their so reset the content as new 'Edit' has been clicked.
			reset(old_content_rights,objtoclick);
	}
	/*
	if(document.getElementById(element_id+'_href')) {
		var items = document.getElementsByTagName("a")
	        for(i = 0; i < items; i++)
	        {
			  if (items[i].id == element_id+"_href")
	          {
			  document.getElementById(items[i].id).innerHTML='';
	          } else {
			  document.getElementById(element_id+'_href').innerHTML='Edit';
			  }
	        }
	}
	*/
	objtoclick=document.getElementById(rights);
	old_content_rights=objtoclick.value;
	objtoedit=document.getElementById(element_id);
	old_content=objtoedit.innerHTML.replace("\r\n","");
	objtoedit.innerHTML='';	
	
	document.getElementById('birthday_select').style.display='none';
	document.getElementById('birthdate').style.display='block';
	document.getElementById('gender_select').style.display='none';
	document.getElementById('gender_none').style.display='block';
	
    //create textbox or textarea
            /* create the form object */
        var f = document.createElement('form');
		  f.id='frm'+element_id;
        /*  main input element */
        var i;
        if ('textarea' == settings.type) {
            i = document.createElement('textarea');
            if (settings.rows) {
                i.rows = settings.rows;
            } else {
               i.rows =4;
            }
            if (settings.cols) {
                i.cols = settings.cols;
            } else {
                i.cols=30;
            }
        } else if ('input' == settings.type) {
            i = document.createElement('input');
            i.size = 13;
			i.className = 'inlineedit';
        } else if ('none' == settings.type) {
			i = document.createElement('div');
			if ('birthday' == element_id) {
				document.getElementById('birthdate').style.display='none';	
			} else if ('gender' == element_id) {
				document.getElementById('gender_none').style.display='none';
			}
            document.getElementById(element_id+'_select').style.display='block';		
		}			

        i.name  = settings.name;
		i.id	= 'txt'+element_id;	
        i.value=old_content;
		i.style.marginLeft='1px';
		
        f.appendChild(i);
		
		if ('textarea' == settings.type) {	
			f.appendChild(document.createElement('br'));
		}

		var z = document.createElement('input');
			z.type = 'hidden';
			z.value=element_id;
			z.name='field_'+element_id;
			z.id='field_'+element_id;
            f.appendChild(z);
			
		if ('textarea' != settings.type) {	
				
	        var t = document.createElement('select');
				t.name = 'accessrights';
				t.id = 'accessrights';		
				t.size = '1';
				t.className = 'inlineedit';
				
	        var r = document.createElement('option');
			if(old_content_rights==3) {
				r.innerHTML = 'alle';
			}
			else if(old_content_rights==5) {
				r.innerHTML = 'Freunde';
			}
			else {
				r.innerHTML = 'niemand';
			}
				r.value = old_content_rights;
				r.selected = 'selected';
	            t.appendChild(r);	
				
		if(old_content_rights!=3) {				
	        var r = document.createElement('option');
				r.innerHTML = 'alle';
				r.value = '3';
	            t.appendChild(r);
		}
		if(old_content_rights!=5) {		
	        var r = document.createElement('option');
				r.innerHTML = 'Freunde';
				r.value = '5';
	            t.appendChild(r);
		}
		if(old_content_rights!=0) {
	        var r = document.createElement('option');
				r.innerHTML = 'niemand';
				r.value = '0';
	            t.appendChild(r);
		}
		
		f.appendChild(t);
		
		}
//f.appendChild(document.createElement('br'));
        if (settings.submit) {
            var b = document.createElement('input');
            b.type = 'image';
			b.src = '/images/layout/background/modules/users/icons/16-em-check.png';
			b.style.height='16px';
			b.style.width='16px';
			b.style.fontSize='10px';
            b.value = settings.submit;
//            b.style.backgroundColor='#008700';
            b.style.color='#ffffff';
			b.style.border='0';
			if ('textarea' != settings.type) {	
				b.className = 'inlineedit';
				b.style.marginTop='1px';
			}
			b.onclick =function(e){
				if(element_id == 'city') {
					submitCity(document.getElementById('txtcity').value);
				}
				if ('none' == settings.type) {	
					if ('birthday' == element_id) {
						submitSelectInlineEdit(element_id, document.getElementById('birthday_day').value, document.getElementById('birthday_month').value, document.getElementById('birthday_year').value);	
					} else {
						submitSelectInlineEdit(element_id, document.getElementById('select_gender').value);
					}
				}
//               document.getElementById(element_id+'_href').innerHTML='<img src=\"/images/icons/edit-yellow.gif\" width=\"14\" height=\"14\" />';
            }
            f.appendChild(b);
        }
        var b = document.createElement('input');
            b.type = 'image';
			b.src = '/images/layout/background/modules/users/icons/12-em-cross.png';
            b.id = 'akebutton';
            b.value = 'abbrechen';
			b.style.height='12px';
			b.style.width='12px';
			b.style.fontSize='10px';
//            b.style.backgroundColor='#dddddd';
            b.style.color='#6E6E6E';
			b.style.border='0';
			if ('textarea' != settings.type) {	
				b.style.marginLeft='3px';
				b.style.marginTop='4px';
				b.className = 'inlineedit';
			} else {
				b.style.marginLeft='10px';	
			}
            b.onclick =function(e){
                reset(old_content,objtoedit);
				if ('none' == settings.type) {	
					if ('birthday' == element_id) {
						document.getElementById('birthdate').style.display='block';	
					} else {
						document.getElementById('gender_none').style.display='block';	
					}
		            document.getElementById(element_id+'_select').style.display='none';	
				}
//				document.getElementById(element_id+'_href').innerHTML='<img src=\"/images/icons/edit-yellow.gif\" width=\"14\" height=\"14\" />';
            }
            f.appendChild(b);
            f.onsubmit=function(e) {
				if ('textarea' != settings.type) {	
//					submitRights(element_id, document.getElementById('accessrights').value);
				}
                /* do no submit */
                if (!e)
                    window.event.returnValue = false;
                else
                    e.preventDefault(); 
                /* add edited content and id of edited element to POST */           

                var p = {};
                p[i.name] = $(i).val();
				if ('textarea' != settings.type) {	
					p[t.name] = $(t).val();
					p[r.name] = $(r).val();
				}
				p[z.name] = $(z).val();
                p['id'] = element_id;
				if ('none' == settings.type) {	
					if ('birthday' == element_id) {
						p['birthday_day'] = document.getElementById('birthday_day').value;
						p['birthday_month'] = document.getElementById('birthday_month').value;
						p['birthday_year'] = document.getElementById('birthday_year').value;
					} else {
						p['select_gender'] = document.getElementById('select_gender').value;
					}
				}

                /* show the saving indicator */
				objtoedit = document.getElementById(element_id);
                objtoedit.innerHTML="Saving.....";
                $.post(url, p, function(str) {
                   objtoedit.innerHTML=str;
				   //document.getElementById('editref').style.visibility="visible";
                });				
            }
			
        objtoedit.appendChild(f);
		

        i.focus();
        i.onkeydown=function(e){
              if (!e)
             {
                var e = window.event;
                e.preventDefault = function() { window.event.returnValue = false }
             }
             if (e.keyCode == 27) {
                e.preventDefault();
				reset(old_content_rights,objtoclick,element_id);
                reset(old_content,objtoedit,element_id);
            }
        };
}

function reset(oldContent,objtoreset,element_id) {
            objtoreset.innerHTML = oldContent;
            //if(document.getElementById('editref'))
				// document.getElementById('editref').style.visibility="visible";
    }