/* File: js/default.js, Ratio: 31.9% */

function uniqid(prefix){if(typeof prefix!='string'){prefix='';}
return prefix+((new Date()).getTime())+''+Math.round(Math.random()*1000);};var obj_valueByStringKey=function(obj,key){if(obj==null){return undefined;}
var keyElems=key.split('.');var current=obj;for(var i=0;i<keyElems.length;i++){if(typeof current[keyElems[i]]=='undefined'){return undefined;}else{current=current[keyElems[i]];}}
return current;};var WL={FB:{login:function(event){event.stop();FB.login(function(){},{perms:'email'});}},ItemForm:Class.create(_CustomEvents_,{PICMANAGER_OPENED:'picmanager:opened',PICMANAGER_CLOSED:'picmanager:closed',FORM_SUBMITTED:'form:submitted',FORM_CALLBACK:'form:callback',initialize:function(formId,data){this.form=$(formId);this.form.ItemForm=this;this.data=data;this.picturesWereModified=false;this.ce_declareEventIds([this.PICMANAGER_CLOSED,this.PICMANAGER_OPENED,this.FORM_SUBMITTED,this.FORM_CALLBACK]);this.loadingIcon=this.form.select('div.submit img.submitLoading')[0];this.ce_addEventListener(this.FORM_SUBMITTED,(function(){this.loadingIcon.show();}).bind(this));this.ce_addEventListener(this.FORM_CALLBACK,(function(){this.loadingIcon.hide();}).bind(this));this.addPicturesLink=this.form.select('a.add_picture')[0];this.addPicturesLink.observe('click',this.openPicManager.bindAsEventListener(this));this.form.select('.cancel_editing').each((function(elem){$(elem).observe('click',this.cancel.bindAsEventListener(this));this.ce_addEventListener(this.FORM_SUBMITTED,function(){elem.hide();});this.ce_addEventListener(this.FORM_CALLBACK,function(){elem.show();});}).bind(this));this.submitButton=this.form.select('div.submit input')[0];this.submitButton.observe('click',this.submit.bindAsEventListener(this));this.form.observe('submit',this.submit.bindAsEventListener(this));this.picturePreviewBox=this.form.select('div.picture_preview_box')[0];this.PicManager=new WL.PicManager(this);this.PicManager.ce_addEventListener(this.PICMANAGER_CLOSED,this.onPicManagerClosed.bind(this));var picsData=obj_valueByStringKey(this.data,'Picture');if(picsData&&picsData.length>0){this.PicManager.setCurrentPictures(picsData);}
if(this.data!=null&&this.data.Item){this.form['data[Item][name]'].value=this.data.Item.name||'';this.form['data[Item][description]'].innerHTML=this.data.Item.description||'';this.form['data[Item][price]'].value=this.data.Item.price||'';this.form['data[Item][currency]'].value=this.data.Item.currency||'';this.form['data[Item][price_estimated]'][1].checked=this.data.Item.price_estimated=='1';}else{this.form['data[Item][currency]'].value=Locale.currency;}
this.form.focusFirstElement();},cancel:function(event){event.stop();this.PicManager.setPendingFiles(null);$(this.form.parentNode).hide();this.form.remove();},submit:function(event){event.stop();this.ce_triggerEvent(this.FORM_SUBMITTED);this.form.insert('<input type="hidden" name="data[pictures_were_modified]" value="'+this.picturesWereModified+'" />');new Ajax.Request('/'+window.language+'/wishlists/edit_item',{evalScripts:true,parameters:Form.serialize(this.form),onCreate:(function(){this.form.disable();}).bind(this),onComplete:(function(response){this.onSubmitCallback(response);this.ce_triggerEvent(this.FORM_CALLBACK,response);}).bind(this)});},onSubmitCallback:function(response){var json=response.responseText.evalJSON();if(json.data.status=='fail'){this.handleFormErrors(json.data.errors);this.form.enable();}
else{window.location.reload();}},handleFormErrors:function(errors){this.form.select('div.error-message').each(function(elem){elem.remove();});this.form.select('.form-error').each(function(elem){elem.removeClassName('form-error');});$H(errors).each((function(error){if(typeof this.form[error.key]!='undefined'){$(this.form[error.key]).addClassName('form-error');var div=new Element('div',{'class':'error-message'}).update(error.value);$(this.form[error.key]).insert({after:div});}}).bind(this));Effect.ScrollTo(this.form);},openPicManager:function(event){event.stop();this.picturesWereModified=true;this.PicManager.show();},onPicManagerClosed:function(eventData){this.showThumbs();},showThumbs:function(){this.picturePreviewBox.innerHTML='';var ul=document.createElement('ul');if(this.PicManager.pictures.length>0){for(var i=0;i<this.PicManager.pictures.length;i++){var li=document.createElement('li');var img=new Element('img',{src:this.PicManager.pictures[i].full_path,'class':'picture_preview'});li.appendChild(img);ul.appendChild(li);}}
this.picturePreviewBox.insert(ul);}}),PicManager:Class.create(_CustomEvents_,{GOOGLE_API_KEY:'ABQIAAAAs9E-iEfZBNHeHkrFAUVVORTage3ACmxc6HZ9f6u0S2dDRINoNBSVTRxhdgD2RyfvBshFc7Is9aE2sw',initialize:function(itemForm){this.itemForm=itemForm;this.form=itemForm.form;this.enabled=true;this.pictures=[];this.modalBox=new ModalBox();this.modalBox.setTitle(Locale.trans['item_form_imagebox_title']);this.modalBox.ce_addEventListener('onClose',this.onHide.bind(this));this.container=this.modalBox.container;this.draw();this.loadingIcon=this.container.select('img.loading_icon_pm')[0];this.picContainer=this.container.select('div.current_pictures div.pic_container')[0];this.tabPane=new TabPane(this.modalBox.container.select('div.tab_pane')[0]);this.tabPane.activate(0);this.container.select('div.finish input')[0].observe('click',this.hide.bind(this));this.initGoogleSearch();this.initAjaxUpload();this.initInternetUpload();},draw:function(){WL.render('pic_manager_template',{},this.container);},setCurrentPictures:function(pictures){this.pictures=pictures;},show:function(){this.setPendingFiles(this.pictures);this.gSearch.input.value=this.form['data[Item][name]'].value;this.fireGoogleSearch();this.modalBox.show();},hide:function(){this.modalBox.hide();},onHide:function(eventData){this.ce_triggerEvent(this.form.ItemForm.PICMANAGER_CLOSED,this);},enable:function(){this.enabled=true;},disable:function(){this.enabled=false;},showLoadingIcon:function(){this.loadingIcon.show();},hideLoadingIcon:function(){this.loadingIcon.hide();},initGoogleSearch:function(){if(typeof window.googleImagesCallback=='undefined'){window.googleImagesCallback=function(response){window._lastGoogleResponse=response;}}
this.gSearch={};this.gSearch.input=this.container.select('div.googleImages input.gImageQueryString')[0];this.gSearch.container=this.container.select('div.googleImages div.gImagesFound')[0];this.gSearch.input.observe('keyup',(function(event){if(this.gSearch.currentTimeout){window.clearTimeout(this.gSearch.currentTimeout);}
this.gSearch.currentTimeout=window.setTimeout(this.fireGoogleSearch.bindAsEventListener(this),800)}).bindAsEventListener(this));},fireGoogleSearch:function(){var imageSearchUrl='http://ajax.googleapis.com/ajax/services/search/images?v=1.0';imageSearchUrl+='&hl='+window.language;imageSearchUrl+='&rsz=small';imageSearchUrl+='&key='+this.GOOGLE_API_KEY;imageSearchUrl+='&safe=moderate';imageSearchUrl+='&imgsz=medium|large';var input=this.gSearch.input;if(this.enabled&&input.value.length>0&&(typeof input.lastValue=='undefined'||(typeof input.lastValue!='undefined'&&input.value!=input.lastValue))){this.showLoadingIcon();input.lastValue=input.value;var url=imageSearchUrl;url+='&q='+encodeURIComponent(input.value);url+='&callback=googleImagesCallback';var t=this;window.cdajax(url,function(){t.hideLoadingIcon();var response=window._lastGoogleResponse;response.currentPicturesContainerId=t.picContainer;WL.render('google_images_result_template',response,t.gSearch.container);t.onGoogleImagesLoaded();});}
else if(input.value.length===0){this.gSearch.container.innerHTML='';}},onGoogleImagesLoaded:function(){this.gSearch.container.select('a.image').each((function(elem){elem.observe('click',(function(event){event.stop();this.uploadInternetFile(elem.href);}).bind(this));}).bind(this));},initAjaxUpload:function(){container=this.container.select('.ajax_upload')[0];new AjaxUpload(container,{action:'/'+window.language+'/upload/upload_user_file',name:'userfile',data:{},autoSubmit:true,responseType:'json',onSubmit:(function(file,extension){if(this.enabled){this.showLoadingIcon();this.disable();return true;}
else{return false;}}).bind(this),onComplete:(function(file,response){this.hideLoadingIcon();this.enable();this.onPendingFilesLoaded(response);}).bind(this)});},initInternetUpload:function(){var input=this.container.select('input.upload_internet')[0];var getItButton=this.container.select('button.getit')[0];input.observe('keypress',(function(event){var code=event.keyCode||event.charCode;if(code==Event.KEY_RETURN){event.stop();if(this.enabled==false||input.value==''||input.value=='http://'){return;}
this.uploadInternetFile(input.value);}}).bind(this));getItButton.observe('click',(function(){if(this.enabled==false||input.value==''||input.value=='http://'){return;}
this.uploadInternetFile(input.value);}).bind(this));},uploadInternetFile:function(url){if(this.enabled==false){return;}
this.showLoadingIcon();if(url.match(/%\d\d[^\d]/)){url=escape(url);}
new Ajax.Request('/'+language+'/upload/upload_internet_file',{evalScripts:true,postBody:'url='+url,onComplete:(function(response){this.hideLoadingIcon();var json=response.responseText.evalJSON();this.onPendingFilesLoaded(json);}).bind(this)});},getPendingFiles:function(){new Ajax.Request('/'+language+'/upload/get_pending_files',{evalScripts:true,onComplete:(function(response){var json=response.responseText.evalJSON();this.onPendingFilesLoaded(json);}).bind(this)});},setPendingFiles:function(pictures){if(pictures!=null&&pictures.length>0){var files={};for(var i=0;i<pictures.length;i++){files['__file__'+i]=pictures[i].full_path;}
var query=Object.toQueryString(files).replace(/__file__\d/g,'files[]');}
else{query="files=";}
new Ajax.Request('/'+language+'/upload/set_pending_files',{evalScripts:true,postBody:query,onComplete:(function(response){var json=response.responseText.evalJSON();this.onPendingFilesLoaded(json);}).bind(this)});},onPendingFilesLoaded:function(json){WL.render('pending_file_template',json.data,this.picContainer);this.pictures=json.data.files;this.picContainer.select('ul.pictures li').each((function(elem){elem.select('a.remove')[0].observe('click',(function(event){event.stop();elem.select('img.removing')[0].show();this.removeTempFile(event.findElement().title);}).bind(this));}).bind(this));},removeTempFile:function(file){if(this.enabled==false){return;}
new Ajax.Request('/'+language+'/upload/remove_tmp_file',{postBody:'file='+file,onComplete:(function(response){var json=response.responseText.evalJSON();this.onPendingFilesLoaded(json);}).bind(this)});}}),render:function(template,data,container){if(data==null){data={};};data._containerId=container;var htmlResult=TrimPath.processDOMTemplate(template,data);if(container!=null&&$(container)){$(container).data=data;$(container).innerHTML=htmlResult;htmlResult.evalScripts();}else{return htmlResult;}},submitQuestion:function(event){event.stop();this.select('div.submit input')[0].hide();this.select('img.loading')[0].show();this.submit();},submitAnswer:function(event){event.stop();this.select('div.submit input')[0].hide();this.select('img.loading')[0].show();this.submit();}};WL.Tpl={dataOut:function(obj,key){var val;if((val=obj_valueByStringKey(obj,key))!==undefined){return WL.Tpl.escape(val);}
return'';},escape:function(input){if(typeof input=='string'&&input.length){var output=input.replace(/&/g,'&amp;');output=output.replace(/"/g,'&quot;');output=output.replace(/</g,'&lt;');output=output.replace(/>/g,'&gt;');return output;}
return input;}};function cdajax(url,callback){request_script=document.createElement("script");request_script.type='text/javascript';request_script.src=url;request_script.onload=function(){document.getElementsByTagName("head")[0].removeChild(request_script);if(typeof callback=='function'){callback();}};request_script.onreadystatechange=function(){if(request_script.readyState=='loaded'||request_script.readyState=='complete'){document.getElementsByTagName("head")[0].removeChild(request_script);if(typeof callback=='function'){callback();}}};document.getElementsByTagName("head")[0].appendChild(request_script);};var TabPane=Class.create({initialize:function(container){this.container=$(container);this.container.tabPaneInstance=this;this.tabChoosers=this.container.getElementsBySelector('.tab_row li');this.tabContents=this.container.getElementsBySelector('div.tab_content');for(var i=0;i<this.tabChoosers.length;i++){this.tabChoosers[i].index=i;this.tabChoosers[i].content=this.tabContents[i];}
var t=this;this.tabChoosers.each(function(tabChooser){tabChooser.observe('click',function(){t.activate(tabChooser.index)});});this.activate(0);},activate:function(index){var tabChooser=this.tabChoosers[index];this.tabChoosers.each(function(tab){tab.className=''});tabChooser.className='active';this.tabContents.each(function(content){content.hide();})
tabChooser.content.show();this.active=index;}});var RemovableElement=Class.create({initialize:function(container,key,label,removable,removeCallback){this.container=$(container);this.key=key;this.label=label;this.removeCallback=removeCallback;this.domElem=document.createElement('div');this.domElem.className='removableElement';var text=document.createTextNode(this.label);this.domElem.appendChild(text);if(removable){var remove=document.createElement('div');remove.className='remove';$(remove).observe('click',this.remove.bindAsEventListener(this));this.domElem.appendChild(remove);}
this.container.appendChild(this.domElem);},setClassName:function(name){this.domElem.className='removableElement '+name;},remove:function(event){var effectDuration=0.2;new Effect.Fade(this.domElem,{duration:effectDuration});window.setTimeout((function(){this.container.removeChild(this.domElem);}).bind(this),effectDuration*1000);this.removeCallback.bind(this)(this);}});
