jQuery.easing.easeOutQuart = function (x, t, b, c, d) {
   return -c * ((t=t/d-1)*t*t*t - 1) + b;
}
function trim(str) {
   var	str = str.replace(/^\s\s*/, ''),
   	ws = /\s/,
   	i = str.length;
   while (ws.test(str.charAt(--i)));
   return str.slice(0, i + 1);
}
function validateTheEmail(address) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var address;
   if(reg.test(address) == false) {
      return false;
   }else{
      return true;
   }
}
function checkTheURL(value) {
  var urlregex = new RegExp("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");
  if(urlregex.test(value)){
    return true;
  }else{
    return false;
  }
}


jQuery(document).ready(function(){
  //no commentYet
  if( parseInt(jQuery('[name=commDisplayed]').val())==0 ){
    jQuery('.allCommentListWrapper, .comments_more').css({display:'none'});
  }else if( parseInt(jQuery('[name=commDisplayed]').val())<=parseInt(jQuery('[name=commPerDisplay]').val()) ){
    jQuery('.comments_more, .withMoreButton').css({display:'none'});
  }
  
  jQuery('#avatarChangeBox').css({opacity:0});
  
  if( trim(jQuery('[name=theEmail]').val())!='' ){
    if( validateTheEmail( jQuery('[name=theEmail]').val() )){
      jQuery('#avatarChangeBox').css({opacity:1});
      checkLocalAvatar();
    }
  }
  
  jQuery('[name=theEmail]').keyup(function(){
    if(validateTheEmail( jQuery(this).val() )){
      jQuery('#avatarChangeBox').css({opacity:1});
    }else{
      jQuery('#avatarChangeBox').css({opacity:0});
    }
  });
  jQuery('[name=theEmail]').focusout(function(){
    if(validateTheEmail( jQuery(this).val() )){
      //jQuery('#avatarChangeBox').css({opacity:1});
      checkLocalAvatar();
    }
  });
  jQuery('[name=theEmail]').focusout(function(){
    if(validateTheEmail( jQuery(this).val() )){
      //jQuery('#avatarChangeBox').css({opacity:1});
      checkLocalAvatar();
    }
  });
  
  
  
  jQuery('#showMoreCommentButton').click(function(){
    displayMoreComment();
  });
   
  jQuery('[name=submitComment]').click(function(){
    postAcomment();
  });
  
  jQuery('.video_detail object, .video_detail embed, .left_highlights object').attr({width:'540', height:'300'})
  
  jQuery('.photo_area .photo_thumbs').mouseover(function(){
    var target = jQuery(this).attr('id');
    
    jQuery('.photo_area #'+target).animate({opacity:1},200);
    jQuery('.photo_thumbs[id!='+target+']').animate({opacity:0.6},200);
  });
  
  jQuery('.photo_area').mouseleave(function(){
    jQuery('.photo_thumbs').animate({opacity:1},400);
  });
  
  jQuery('#imageUploadProgress').css({opacity:0});
  
  jQuery('.justShowMoreThings').click(function(){
    sidebarItemShowMore();
  });
});

function activateGalleryView(){
  $('#theGalleryView').galleryView({
    panel_width: 320,
    panel_height: 200,
    frame_width: 50,
    frame_height: 50,
    nav_theme:'light',
    pause_on_hover: true
 });
}

function checkLocalAvatar(){
  var email = jQuery('[name=theEmail]').val();
  var baseURL = jQuery('[name=sendOP]').val();
  var thaUrl = baseURL+'/ajaxed/';
  
  jQuery('#imageUploadProgress ').css({opacity:1});
  jQuery.post(thaUrl,{ pKEY:'avatarCheck', email:email },function(data){
    jQuery('#imageUploadProgress ').css({opacity:0});
    var imgHTML = '<img class="theImage" src="'+trim(data)+ '?' + (new Date()).getTime()+'" width="100" height="100" />';
    
    jQuery('#avatarChangeBox img.theImage').remove();
    jQuery('#avatarChangeBox').prepend(imgHTML);    
  });
}
function activateAjaxUpload(){
//=====================================================================================
   var baseURL = jQuery('[name=sendOP]').val();
   var thaUrl = baseURL+'/events/ajaxed/';
   var thaEmail = jQuery('[name=theEmail]').val();
   
	var btnUpload=$('#changeAvatarButton');
	var status=$('#status');
	var thaUpload = new AjaxUpload(btnUpload, {
		action: thaUrl ,
		//Name of the file input box
      
		name: 'uploadfile',
		onSubmit: function(file, ext){
        thaUpload.setData({ email : jQuery('[name=theEmail]').val() });
        
        if (! (ext && /^(jpg|png|jpeg|gif|JPG|JPEG|GIF|PNG)$/.test(ext))){
          // check for valid file extension
          status.text('Only JPG, PNG or GIF files are allowed');
          return false;
        }
		  //status.text('Uploading...');
        //alert(jQuery('[name=theEmail]').val());
        jQuery('#imageUploadProgress ').css({opacity:1});
		},
		onComplete: function(file, response){
        jQuery('#imageUploadProgress ').css({opacity:0});
        if(trim(response)==="error"){
          //the error is here
        } else{
          //the success is here
          var imgHTML = '<img class="theImage" src="'+trim(response)+ '?' + (new Date()).getTime()+'" width="100" height="100" />';
          
          jQuery('#avatarChangeBox img.theImage').remove();
          jQuery('#avatarChangeBox').prepend(imgHTML);
        }
        //alert(trim(response));
		}
	});
//=====================================================================================   
}

function displayMoreComment(){
  jQuery('#ajaxProgressAnimation').css({display:'block'});
  
  var baseURL = jQuery('[name=sendOP]').val();
  var thaUrl = baseURL+'/events/ajaxed/';
  var pID = jQuery('[name=commKey]').val();
  var perDisplay = parseInt(jQuery('[name=commPerDisplay]').val());
  var displayed = parseInt(jQuery('[name=commDisplayed]').val());
  var pKEY = 'moreComment';

  jQuery.post(thaUrl,{
      pKEY:pKEY,
      pID:pID,
      perDisplay:perDisplay,
      displayed:displayed
  },function(data){
      if(trim(data)=='error'){
        // the error is here
      }else{
        jQuery('#theCommentWrapper').append(trim(data));
        jQuery('.fromAjax').css({display:'none'}).slideDown(function(){
          jQuery('.comments').removeClass('fromAjax');
        });
        
        jQuery('[name=commDisplayed]').val( (perDisplay+displayed ) );
        //alert(data);
      }
      
      jQuery('#ajaxProgressAnimation').css({display:'none'});
  });
}


function postAcomment(){
  jQuery('span.error').remove();
  
  
  
  var baseURL = jQuery('[name=sendOP]').val();
  var thaUrl = baseURL+'/ajaxed/';
  var pID = jQuery('[name=commKey]').val();
  
  
  
  var theName = jQuery('[name=theName]').val();
  var theEmail = jQuery('[name=theEmail]').val();
  var theWebsite = jQuery('[name=theWebsite]').val();
  var theComment = jQuery('[name=theComment]').val();
  var capthaText = jQuery('[name=capthaText]').val();
  var appInfo = jQuery('[name=appInfo]').val();

  var pKEY = 'postacomment';
  var errNotif = '<span class="error">&nbsp;</span>';
  
  var error = 0;
  if(trim(theName)==''){
    error = 1;
    //theName empty action
    jQuery(errNotif).insertAfter('[name=theName]');
  }
  if(trim(theEmail)==''){
    error = 1;
    //theEmail empty action
    jQuery(errNotif).insertAfter('[name=theEmail]');
  }
  if( !validateTheEmail(theEmail) ){
    error = 1;
    //invalid invalid action
    jQuery(errNotif).insertAfter('[name=theEmail]');
  }
  if(trim(theComment)==''){
    error = 1;
    //theComment empty action
    jQuery(errNotif).insertAfter('[name=theComment]');
  }
  if(trim(capthaText)==''){
    error = 1;
    //capthaText empty action
    jQuery(errNotif).insertAfter('[name=capthaText]');
  }
  if( !checkTheURL(theWebsite) && trim(theWebsite)!='' ){
    error = 1;
    //theWebsite invalid action
    jQuery(errNotif).insertAfter('[name=theWebsite]');
  }
  jQuery.post(thaUrl,{ pKEY:'captcha', theKey:capthaText },function(data){
      alert(data);
      
      if(trim(data)!='success'){
        error = 1;
        //captcha invalid action
        jQuery(errNotif).insertAfter('[name=capthaText]');
      }
      
      if(error==0){
        //alert('its all OK');
        jQuery.post(thaUrl,{
          pKEY:pKEY,
          pID:pID,
          theName:theName,
          theEmail:theEmail,
          theWebsite:theWebsite,
          theComment:theComment,
          appInfo:appInfo
        },function(data){
          //here the action goes
          if( trim(data)=='error' || trim(data)=='empty' ){
            //error posting comment
          }else{
            if(jQuery('.allCommentListWrapper').css('display')=='none'){
              jQuery('.allCommentListWrapper').css({display:'block'});
              jQuery('.withMoreButton').css({display:'none'});
            }
            
            jQuery('#theCommentWrapper').prepend(trim(data));
            jQuery('.fromAjax').css({display:'none'}).slideDown(function(){
              jQuery('.comments').removeClass('fromAjax');
              
              var displayed = parseInt(jQuery('[name=commDisplayed]').val())+1;
              jQuery('[name=commDisplayed]').val(displayed);
              
              jQuery('[name=theComment]').val('');
            });            
          }
        });
      }else{
        //alert('something wrong');
      }
      
      //reCatcha
      var nUrl = jQuery('[name=justPassingBy]').val();
      capImgUrl = nUrl+'/val-image.php'+ '?' + (new Date()).getTime();
      jQuery('span.captchaContainer img').remove();
      jQuery('span.captchaContainer').append('<img src="'+capImgUrl+'" class="text_isi_val" />');
      jQuery('[name=capthaText]').val('');
  });
}

function sidebarItemShowMore(){
  var baseURL = jQuery('[name=sendOP]').val();
  var thaUrl = baseURL+'/ajaxed/';
  
  var thaKey = jQuery('[name=keyMore]').val();
  var displayed=  parseInt(jQuery('[name=dspMore]').val());
  var perDisplay = parseInt(jQuery('[name=addMore]').val());
  
  var pKEY = 'moreSidebarThings';
  
  jQuery('#swowMoreSidebarThings').css({display:'block'});
  
  
  jQuery.post(thaUrl,{
      pKEY:pKEY,
      thaKey:thaKey,
      perDisplay:perDisplay,
      displayed:displayed
  },function(data){
      if(trim(data)=='error'){
        // the error is here
      }else{
        //success
        jQuery('#theContentOfThings').append(trim(data) );
        jQuery('.news_thumbs_right.fromAjax').css({display:'none'}).slideDown(function(){
          jQuery('.news_thumbs_right').removeClass('fromAjax');
        });
        
        jQuery('[name=dspMore]').val( (displayed+perDisplay) );
        
        if( (displayed+perDisplay) >= parseInt(jQuery('[name=allThings]').val()) ){
          jQuery('.justShowMoreThings').css({display:'none'});
        }
      }
      jQuery('#swowMoreSidebarThings').css({display:'none'});
      //alert('yadaw yadaw');
  });
}


