/* Custom javascript for www.preposterone.com */
   
window.addEvent('domready', function() { 
  // Remove no-script class from body
  $('body').removeClass('no-script');
  
  //and destroy write review text area
  if($('no-script-write-review-review')) {
      $('no-script-write-review-review').getElement('textarea').dispose();
  }
    
 //OUTBOUND LINKS
     if($$('.outbound-link')) {
         $$('.outbound-link').each(function(item) {
            item.addEvent('click',function(e) {
                 e.preventDefault();
                 window.open(item.getProperty('href'));
             });
         });
     }
	 
	//IE 6 PNG FIXES
    //ie6 png fix

	var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;

	if(IE6) {
                /**
        * DD_belatedPNG: Adds IE6 support: PNG images for CSS background-image and HTML <IMG/>.
        * Author: Drew Diller
        * Email: drew.diller@gmail.com
        * URL: http://www.dillerdesign.com/experiment/DD_belatedPNG/
        * Version: 0.0.8a
        * Licensed under the MIT License: http://dillerdesign.com/experiment/DD_belatedPNG/#license
        *
        * Example usage:
        * DD_belatedPNG.fix('.png_bg'); // argument is a CSS selector
        * DD_belatedPNG.fixPng( someNode ); // argument is an HTMLDomElement
        **/
        var DD_belatedPNG={ns:"DD_belatedPNG",imgSize:{},delay:10,nodesFixed:0,createVmlNameSpace:function(){if(document.namespaces&&!document.namespaces[this.ns]){document.namespaces.add(this.ns,"urn:schemas-microsoft-com:vml")}},createVmlStyleSheet:function(){var b,a;b=document.createElement("style");b.setAttribute("media","screen");document.documentElement.firstChild.insertBefore(b,document.documentElement.firstChild.firstChild);if(b.styleSheet){b=b.styleSheet;b.addRule(this.ns+"\\:*","{behavior:url(#default#VML)}");b.addRule(this.ns+"\\:shape","position:absolute;");b.addRule("img."+this.ns+"_sizeFinder","behavior:none; border:none; position:absolute; z-index:-1; top:-10000px; visibility:hidden;");this.screenStyleSheet=b;a=document.createElement("style");a.setAttribute("media","print");document.documentElement.firstChild.insertBefore(a,document.documentElement.firstChild.firstChild);a=a.styleSheet;a.addRule(this.ns+"\\:*","{display: none !important;}");a.addRule("img."+this.ns+"_sizeFinder","{display: none !important;}")}},readPropertyChange:function(){var b,c,a;b=event.srcElement;if(!b.vmlInitiated){return}if(event.propertyName.search("background")!=-1||event.propertyName.search("border")!=-1){DD_belatedPNG.applyVML(b)}if(event.propertyName=="style.display"){c=(b.currentStyle.display=="none")?"none":"block";for(a in b.vml){if(b.vml.hasOwnProperty(a)){b.vml[a].shape.style.display=c}}}if(event.propertyName.search("filter")!=-1){DD_belatedPNG.vmlOpacity(b)}},vmlOpacity:function(b){if(b.currentStyle.filter.search("lpha")!=-1){var a=b.currentStyle.filter;a=parseInt(a.substring(a.lastIndexOf("=")+1,a.lastIndexOf(")")),10)/100;b.vml.color.shape.style.filter=b.currentStyle.filter;b.vml.image.fill.opacity=a}},handlePseudoHover:function(a){setTimeout(function(){DD_belatedPNG.applyVML(a)},1)},fix:function(a){if(this.screenStyleSheet){var c,b;c=a.split(",");for(b=0;b<c.length;b++){this.screenStyleSheet.addRule(c[b],"behavior:expression(DD_belatedPNG.fixPng(this))")}}},applyVML:function(a){a.runtimeStyle.cssText="";this.vmlFill(a);this.vmlOffsets(a);this.vmlOpacity(a);if(a.isImg){this.copyImageBorders(a)}},attachHandlers:function(i){var d,c,g,e,b,f;d=this;c={resize:"vmlOffsets",move:"vmlOffsets"};if(i.nodeName=="A"){e={mouseleave:"handlePseudoHover",mouseenter:"handlePseudoHover",focus:"handlePseudoHover",blur:"handlePseudoHover"};for(b in e){if(e.hasOwnProperty(b)){c[b]=e[b]}}}for(f in c){if(c.hasOwnProperty(f)){g=function(){d[c[f]](i)};i.attachEvent("on"+f,g)}}i.attachEvent("onpropertychange",this.readPropertyChange)},giveLayout:function(a){a.style.zoom=1;if(a.currentStyle.position=="static"){a.style.position="relative"}},copyImageBorders:function(b){var c,a;c={borderStyle:true,borderWidth:true,borderColor:true};for(a in c){if(c.hasOwnProperty(a)){b.vml.color.shape.style[a]=b.currentStyle[a]}}},vmlFill:function(e){if(!e.currentStyle){return}else{var d,f,g,b,a,c;d=e.currentStyle}for(b in e.vml){if(e.vml.hasOwnProperty(b)){e.vml[b].shape.style.zIndex=d.zIndex}}e.runtimeStyle.backgroundColor="";e.runtimeStyle.backgroundImage="";f=true;if(d.backgroundImage!="none"||e.isImg){if(!e.isImg){e.vmlBg=d.backgroundImage;e.vmlBg=e.vmlBg.substr(5,e.vmlBg.lastIndexOf('")')-5)}else{e.vmlBg=e.src}g=this;if(!g.imgSize[e.vmlBg]){a=document.createElement("img");g.imgSize[e.vmlBg]=a;a.className=g.ns+"_sizeFinder";a.runtimeStyle.cssText="behavior:none; position:absolute; left:-10000px; top:-10000px; border:none; margin:0; padding:0;";c=function(){this.width=this.offsetWidth;this.height=this.offsetHeight;g.vmlOffsets(e)};a.attachEvent("onload",c);a.src=e.vmlBg;a.removeAttribute("width");a.removeAttribute("height");document.body.insertBefore(a,document.body.firstChild)}e.vml.image.fill.src=e.vmlBg;f=false}e.vml.image.fill.on=!f;e.vml.image.fill.color="none";e.vml.color.shape.style.backgroundColor=d.backgroundColor;e.runtimeStyle.backgroundImage="none";e.runtimeStyle.backgroundColor="transparent"},vmlOffsets:function(d){var h,n,a,e,g,m,f,l,j,i,k;h=d.currentStyle;n={W:d.clientWidth+1,H:d.clientHeight+1,w:this.imgSize[d.vmlBg].width,h:this.imgSize[d.vmlBg].height,L:d.offsetLeft,T:d.offsetTop,bLW:d.clientLeft,bTW:d.clientTop};a=(n.L+n.bLW==1)?1:0;e=function(b,p,q,c,s,u){b.coordsize=c+","+s;b.coordorigin=u+","+u;b.path="m0,0l"+c+",0l"+c+","+s+"l0,"+s+" xe";b.style.width=c+"px";b.style.height=s+"px";b.style.left=p+"px";b.style.top=q+"px"};e(d.vml.color.shape,(n.L+(d.isImg?0:n.bLW)),(n.T+(d.isImg?0:n.bTW)),(n.W-1),(n.H-1),0);e(d.vml.image.shape,(n.L+n.bLW),(n.T+n.bTW),(n.W),(n.H),1);g={X:0,Y:0};if(d.isImg){g.X=parseInt(h.paddingLeft,10)+1;g.Y=parseInt(h.paddingTop,10)+1}else{for(j in g){if(g.hasOwnProperty(j)){this.figurePercentage(g,n,j,h["backgroundPosition"+j])}}}d.vml.image.fill.position=(g.X/n.W)+","+(g.Y/n.H);m=h.backgroundRepeat;f={T:1,R:n.W+a,B:n.H,L:1+a};l={X:{b1:"L",b2:"R",d:"W"},Y:{b1:"T",b2:"B",d:"H"}};if(m!="repeat"||d.isImg){i={T:(g.Y),R:(g.X+n.w),B:(g.Y+n.h),L:(g.X)};if(m.search("repeat-")!=-1){k=m.split("repeat-")[1].toUpperCase();i[l[k].b1]=1;i[l[k].b2]=n[l[k].d]}if(i.B>n.H){i.B=n.H}d.vml.image.shape.style.clip="rect("+i.T+"px "+(i.R+a)+"px "+i.B+"px "+(i.L+a)+"px)"}else{d.vml.image.shape.style.clip="rect("+f.T+"px "+f.R+"px "+f.B+"px "+f.L+"px)"}},figurePercentage:function(d,c,f,a){var b,e;e=true;b=(f=="X");switch(a){case"left":case"top":d[f]=0;break;case"center":d[f]=0.5;break;case"right":case"bottom":d[f]=1;break;default:if(a.search("%")!=-1){d[f]=parseInt(a,10)/100}else{e=false}}d[f]=Math.ceil(e?((c[b?"W":"H"]*d[f])-(c[b?"w":"h"]*d[f])):parseInt(a,10));if(d[f]%2===0){d[f]++}return d[f]},fixPng:function(c){c.style.behavior="none";var g,b,f,a,d;if(c.nodeName=="BODY"||c.nodeName=="TD"||c.nodeName=="TR"){return}c.isImg=false;if(c.nodeName=="IMG"){if(c.src.toLowerCase().search(/\.png$/)!=-1){c.isImg=true;c.style.visibility="hidden"}else{return}}else{if(c.currentStyle.backgroundImage.toLowerCase().search(".png")==-1){return}}g=DD_belatedPNG;c.vml={color:{},image:{}};b={shape:{},fill:{}};for(a in c.vml){if(c.vml.hasOwnProperty(a)){for(d in b){if(b.hasOwnProperty(d)){f=g.ns+":"+d;c.vml[a][d]=document.createElement(f)}}c.vml[a].shape.stroked=false;c.vml[a].shape.appendChild(c.vml[a].fill);c.parentNode.insertBefore(c.vml[a].shape,c)}}c.vml.image.shape.fillcolor="none";c.vml.image.fill.type="tile";c.vml.color.fill.on=false;g.attachHandlers(c);g.giveLayout(c);g.giveLayout(c.offsetParent);c.vmlInitiated=true;g.applyVML(c)}};try{document.execCommand("BackgroundImageCache",false,true)}catch(r){}DD_belatedPNG.createVmlNameSpace();DD_belatedPNG.createVmlStyleSheet();
		$$('img[src$=png]').each(function(img) {

			DD_belatedPNG.fixPng(img)

		});

	}

		
    //FLASH
    if($('flash')) {
        $('flash').set('tween', { duration: 5000 });
        $('flash').tween('color','#260403','#ffffff');
    }
		
    ///REVIEWS FORM
 
    //set up write-review form
    if($('write-review') || $('review-update')) {
        $('title').focus();
        create_auto_searches();
        create_sliders('grenade');
    }   
     //set up edit-review form
    if($('review-update')) {
            create_sliders('grenade');
    }
          
   //unpublish/publish event
    $$('.publish').each(function(item) {
        item.addEvent('click', function(e) {
            e.preventDefault();
            var identifiers = item.getProperty('id').split('-');
            var post_values = {'id':identifiers[1],'draft':identifiers[2]}
            var myRequest = new Request({
                method: 'post', 
                url: '/my-reviews/togglePublish',
                onComplete:function() {
                    var text = item.get('text');
                    if(text == 'Publish') { 
                        item.set('text','Unpublish'); 
                        identifiers[2] = 0;
                        var id = identifiers.join('-');
                        item.set('id',id);
                    }
                    else { 
                        item.set('text','Publish'); 
                        identifiers[2] = 1;
                        var id = identifiers.join('-');
                        item.set('id',id);
                    }
                    
                }
            });
            myRequest.post(post_values);
        });
    });
		
     //family friendly check box
     if($('write-review') || $('review-update')) {
        var family = $('family');
        var ages = $('ages');
        var slider = new Fx.Slide('ages').hide();
        ages.removeClass('hide');
        if(family.getProperty('checked') == true) {
           slider.show(); 
        }
        family.addEvent('click',function() {
              slider.toggle();  
        });
    }
		
    //READ REVIEWS 
    
    
    
    if($('bullet-form')) {
        new AutoSearch('title',  '/my-reviews/autoTitle', {'container':'auto-title'});
    }
        
        
    // Review Ratings
    if($('reader-box')) {
            var box = $('reader-box');
            var rate_form = $('rate-movie-form');
            var plot = $('plot-slider');
            var chars = $('character-slider');
            var humor = $('humor-slider');
            var plot_img = plot.getElement('img');
            var char_img = chars.getElement('img');
            var humor_img = humor.getElement('img');                                   
            var box_slider = new Fx.Slide(box).hide();
            box.removeClass("hide");	
            $$('.reader').each(function(item) {  
                 item.addEvent('click',function(e) {
                    e.stop();     
                    create_sliders('grenade'); 
                    box_slider.slideIn();
                });  
            });
            $('cancel').addEvent('click',function() {
                box_slider.slideOut();
            });
        
            
            var ratings_request = new Request.JSON({
                    url:'/movie-reviews/rate',
                    onComplete:function(obj) {
                        var plot_src = '/public/graphics/grenade-'+obj.plaus+'.png';
                        plot_img.setProperty('src',plot_src);
                        plot_img.setStyle('left',(obj.plaus*20));
                        plot.setStyle('width',(obj.plaus*25));
                        var char_src = '/public/graphics/grenade-'+obj.chars+'.png';
                        char_img.setProperty('src',char_src);
                        char_img.setStyle('left',(obj.chars*20));
                        chars.setStyle('width',(obj.chars*25));
                        var humor_src = '/public/graphics/grenade-'+obj.humor+'.png';
                        humor_img.setProperty('src',humor_src);
                        humor_img.setStyle('left',(obj.humor*20));
                        humor.setStyle('width',(obj.humor*25));
                        box_slider.slideOut();
                        
                    },
                    onSuccess:function() {
                        var name = $('rating-review-title').getProperty('value');
                        var message = 'Thank you for rating '+ name +'! Your ratings have been added to the tallies below.';
                        var el = new Element('span',{'html':message, 'class':'em'});
                        el.setStyle('opacity','0');
                        var div = $('message');
                        div.empty();
                        el.inject(div); 
                        el.tween('opacity','0','1');
                    }
            });

            rate_form.addEvent('submit',function(e) {
               e.stop();
               ratings_request.post(rate_form);
            });
        }
        //Review Comments
        if($('review-comment-form')) {
                    var yoform = $('review-comment-form');
                    var name = $('name');
                    var email = $('email');
                    var comment = $('comment');
                    var errors_div = $('review-comment-errors');
                    var ul = errors_div.getElement('ul');
                    var errors_slider = new Fx.Slide(errors_div).hide();
                    var id = $('id').getProperty('value');
                    var url = '/movie-reviews/read/'+id;
                    var container = $('review-comments-container');
                    var comments_request = new Request.HTML({
                            url:url,
                            onRequest:function() {
                                 if(errors_slider.open) { errors_slider.slideOut(); }   
                            },
                            onSuccess:function(one,two,three,four) {
                                var nc = new Element('div').set('html',three);
                                nc.inject(container,'bottom');
                                //nc_slider = new Fx.Slide(nc).hide().slideIn();
                                name.setProperty('value','');
                                email.setProperty('value','');
                                comment.setProperty('value','');     
                            }
                    });
                    errors_div.removeClass('hide');
                    yoform.addEvent('submit',function(e) {
                          e.stop(); 
                          //error checking
                          ul.empty();
                          var errors = new Array();
                          var name_val = name.getProperty('value');
                          var email_val = email.getProperty('value');
                          var comment_val = comment.getProperty('value');
                          if(name_val == '') {
                               errors = errors.include('Name is required.');
                          }
                          if(email_val == '') {
                              errors = errors.include('Email is required.');
                          }
                          if(email_val != '' && !email_val.test(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i)) {
                              errors = errors.include('A valid email address is required.');
                          }
                          if(comment_val == '') {
                              errors = errors.include('Comment is required.');
                          }
                          if(errors.length > 0) {
                               errors.each(function(item) {
                                      var li = new Element('li',{'html':item});
                                      li.inject(ul,'bottom');
                               });
                               if(!errors_slider.open) { errors_slider.slideIn(); }
                              
                          }
                          else {
                              comments_request.post(yoform);
                          }
                          
                     });
                 }
                 
        //Round up Comments
        if($('roundup-comment-form')) {
                    var myform = $('roundup-comment-form');
                    var name = $('name');
                    var email = $('email');
                    var comment = $('comment');
                    var errors_div = $('roundup-comment-errors');
                    var ul = errors_div.getElement('ul');
                    var errors_slider = new Fx.Slide(errors_div).hide();
                    var myurl = myform.getProperty('action');
                    var container = $('roundup-comments-container');
                    var roundup_comments_request = new Request.HTML({
                            url:myurl,
                            onRequest:function() {
                                    
                                 if(errors_slider.open) { errors_slider.slideOut(); }   
                            },
                            onSuccess:function(one,two,three,four) {
                               var nc = new Element('div').set('html',three);
                               nc.inject(container,'bottom');
                               name.setProperty('value','');
                               email.setProperty('value','');
                               comment.setProperty('value',''); 
                              
                            }
                    });
                    errors_div.removeClass('hide');
                    myform.addEvent('submit',function(e) {
                          e.stop(); 
                          //error checking
                          ul.empty();
                          var errors = new Array();
                          var name_val = name.getProperty('value');
                          var email_val = email.getProperty('value');
                          var comment_val = comment.getProperty('value');
                          if(name_val == '') {
                               errors = errors.include('Name is required.');
                          }
                          if(email_val == '') {
                              errors = errors.include('Email is required.');
                          }
                          if(email_val != '' && !email_val.test(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i)) {
                              errors = errors.include('A valid email address is required.');
                          }
                          if(comment_val == '') {
                              errors = errors.include('Comment is required.');
                          }
                          if(errors.length > 0) {
                               errors.each(function(item) {
                                      var li = new Element('li',{'html':item});
                                      li.inject(ul,'bottom');
                               });
                               if(!errors_slider.open) { errors_slider.slideIn(); }
                              
                          }
                          else {
                          
                              roundup_comments_request.post(myform);
                         
                          }
                          
                          
                     });
                 }
                 
                 //ARCHIVES sorting
                  if($$('.sort')) {
                        var sort = new Request.HTML({
                            update: 'archives-index',
                            onSuccess:function() {
                                $$('.sort').each(function(item) {
                                    item.addEvent('click',function(e) {
                                        e.preventDefault();
                                        var query_string = item.getProperty('href').split('?');
                                        sort.get('/movie-reviews/sort?'+query_string[1]);
                                        
                                    });
                                });
                            }
                        });
                        $$('.sort').each(function(item) {
                            item.addEvent('click',function(e) {
                                e.preventDefault();
                                var query_string = item.getProperty('href').split('?');
                                sort.get('/movie-reviews/sort?'+query_string[1]);
                                
                            });
                        });
                    }
            if($$('.ratings')) {      
                 new Asset.images(['/public/graphics/grenade-0.png', '/public/graphics/grenade-1.png', '/public/graphics/grenade-2.png',
                '/public/graphics/grenade-3.png', '/public/graphics/grenade-4.png', '/public/graphics/grenade-5.png',
                '/public/graphics/grenade-6.png', '/public/graphics/grenade-7.png', '/public/graphics/grenade-8.png',
                '/public/graphics/grenade-9.png', '/public/graphics/grenade-10.png', '/public/graphics/grenade-11.png']);
            }
});


/* FUNCTIONS */

	function start_login_form(user_menu_slider, reg_slider, search_slider,login_slider, menu_height, top) {
        user_menu_slider.change_homepath('login');
        var login_form = $('login-form');
        if (login_form.hasClass('hide')) {
            login_form.removeClass('hide');
        }
        if(reg_slider.open) { 
            reg_slider.toggle(); 
            top.start('height',menu_height + 20).chain(function() {
                login_slider.toggle(); 
                var login_height = $('login-form').getSize(); 
                top.start('height',(menu_height + 20 + login_height.y)); 
             });
        }
        else if (search_slider.open) { 
            search_slider.toggle();
            top.start('height',menu_height + 20).chain(function() { 
            login_slider.toggle(); 
            var login_height = $('login-form').getSize();
            top.start('height',(menu_height + 20 + login_height.y)); })
        }
        else { 
            login_slider.toggle(); 
            if(!login_slider.open){
                var login_height = $('login-form').getSize();
                top.start('height',(menu_height +  20 + login_height.y));
            }
            else{
                top.start('height',(menu_height + 20));
            }
        } 
    }
	
	 function create_auto_searches() {
         new AutoSearch('title',  '/my-reviews/autoTitle', {'container':'auto-title'});
         new AutoSearch('director',  '/my-reviews/autoDirector', {'container':'auto-director'});
         new AutoSearch('good-actor',  '/my-reviews/autoStar', {'container':'auto-good-actor'});
         new AutoSearch('bad-actor','/my-reviews/autoStar',{'container':'auto-bad-actor'});  
    }
	
	 function create_sliders(image) {
        var selector = 'ratings';
        var myel = $(selector);
        var ratings = myel.getElements('div.slider.rating');
        ratings.each(function(el, i){
            var value_el = el.getChildren('input');
            var start_value = value_el[0].getProperty('value');
			var slider = new Slider(el, el.getElement('.knob'), {
                steps: 11,  // Steps from 0 to 11
                wheel: true, // Using the mousewheel is possible too
                onChange: function(){
					var value = el.getElement('.value');
					value.setProperty('value',this.step);
                    var knob = el.getElement('.knob'); 
                    knob.setStyle('background-image','url(/public/graphics/'+image+'-'+this.step+'.png)');
                    
                }
            }).set(start_value);
        });
    }
	

