//TODO:
//image uploading and validation

jQuery(document).ready(function(){ 
    jQuery.validator.addMethod("noselect", function (value, element) {
           if (value != 0) return !this.optional(element);
            },
            "Please select a category"
    );

    jQuery.validator.addMethod("special", function (value, element) {
           return this.optional(element) || /^[\w\$\@\!\~\s\`\^\*\(\)\{\}\[\]\:\;\\\>\/\,\.\+\-\|\=]+$/.test(value);
            },
            "Title contains illegal character "
    );
    
    jQuery.validator.addMethod("you_tube_link", function (value, element) {
           return this.optional(element) || /^(ht|f)tp(s?)\:\/\/www\.youtube\.com(\/?)([a-zA-Z0-9\-\=\.\?\,\'\/\\\+&amp;%\$#_]*)?$/.test(value);
            },
            "Enter valide you tub link "
    );
    
    jQuery.validator.addMethod("alphaspace", function (value, element) {
           return this.optional(element) || /^[a-zA-Z\s]+$/.test(value);
            },
            "Illegal character not allowed"
    );
}); 

var altDesCounter = 0;
var removedDesAlts = new Array();
function addAlts() {
    if(altDesCounter <= 10) {
        jQuery('#li_'+altDesCounter).show();
        jQuery('#li_'+altDesCounter+'error').show();
        /*var str = '<li id="li_'+(altCounter)+'"><input name="design_alt_'+altCounter+'" id="design_alt_'+altCounter+'" type="file" class="file" value="" onclick="javascript:designUploadListener(\"thumb\")"/><br /><span class="error" id="design_alt_error'+altCounter+'"></span></li>'
        jQuery(str).insertBefore('#more_alt');*/
        altDesCounter++;
    }
    else {
        jQuery('#more_alt').removeAttr('onclick');
        jQuery('#more_alt').html('Maximum of 10 alternate images allowed');
    }
}


function designUploadListener(type) {


new Ajax_upload('#design_'+type, {
                        //action: 'upload.php',
                        action: baseUrlForJs+'/designs/designs/handleupload/type/'+type, 
                        name: 'file',
                        onSubmit: function(file, extension) {
                                     jQuery("#design_"+type+"_error").html("");
                                    jQuery("#loading_"+type).show();
                                    jQuery('#design_'+type).hide(); 
                                    jQuery('#submit_add_design').hide(); 
                                    
                                },

                        onComplete : function(data,response){
                       
                            jQuery("#design_"+type+"_error").html("");
                            jQuery("#loading_"+type).hide();
                            jQuery('#design_'+type).show();
                            jQuery('#submit_add_design').show();  
                            //split the string
                            var result = response.split('|',2);
                            
                             if(jQuery.trim(result[0]) == "FAILED") {
                                jQuery("#design_"+type+"_error").show();
                                switch(type) {
                                    case 'default':
                                       jQuery("#design_"+type+"_error").html(result[1]);  
                                    break;
                                    
                                    case 'thumb':
                                       jQuery("#design_"+type+"_error").html(result[1]);  
                                    break;
                                    
                                    default:
                                        jQuery("#design_"+type+"_error").html(result[1]);
                                    break;
                                }
                                //jQuery("#design_"+type+"_error").html('Error uploading '+type+' image due to the following errors: <br />'+result[1]);
                             }
                             else {
                              if(type == 'alt_1') {
                                    is_uploaded_model = true;
                                }
                                switch(type) {
                                    case 'default':
                                    case 'thumb':
                                                       
                                jQuery('#uploaded_'+type).val(jQuery.trim(result[1]));
                                var str = '<img id="'+type+'_preview" width="50" src="'+baseUrlForJs+'/temp/thumb_image/'+result[1]+'" />';
                                jQuery(str).insertAfter('#design_'+type);
                                
                                
                                jQuery("#design_"+type+"_error").show();
                                jQuery("#design_"+type+"_error").html('<span class="change"><a href="javascript:void(0)">(Remove)</a></span>').click( function () {
                                
                                jQuery('#'+type+'_preview').remove();
                                jQuery("#design_"+type+"_error").html('');
								jQuery("#design_"+type+"_error").hide();
								jQuery('#uploaded_'+type).val('');
								var altid = type.split('_');
								altid = altid[1];
                                jQuery("#design_"+type).show();
								
								
                                });
                                jQuery("#design_"+type).hide(); 
                                
                                      break;
                                      
                                default:
                                        altDesCounter=altDesCounter+1;
                                        
                                         if(removedDesAlts.length > 0) { //user removed some pics
                                            
                                            removedDesAlts.sort();
                                            
                                            var emptyAltCounter = removedDesAlts.pop();
                                             jQuery('#uploaded_alt_'+emptyAltCounter).val(jQuery.trim(result[1]));

                                            var str = '<li class="uploaded_img_preview" id="li_'+emptyAltCounter+'"><img id="'+emptyAltCounter+'_preview" width="50" src="'+baseUrlForJs+'/temp/thumb_image/'+result[1]+'" /><br /><span class="change"><a href="javascript:void(0)" onclick="removeAltDesImage(\''+emptyAltCounter+'\')">(Remove)</a></span></li>';
                                         }
                                         else {
                                             jQuery('#uploaded_alt_'+altDesCounter).val(jQuery.trim(result[1]));
                                            var str = '<li class="uploaded_img_preview" id="li_'+altDesCounter+'"><img id="'+altDesCounter+'_preview" width="50" src="'+baseUrlForJs+'/temp/thumb_image/'+result[1]+'" /><br /><span class="change"><a href="javascript:void(0)" onclick="removeAltDesImage(\''+altDesCounter+'\')">(Remove)</a></span></li>';
                                           
                                         
                                         }
                                         
                                        jQuery('#upload_pic').before(str);
                                        if(altDesCounter == 10) {
                                           jQuery('#upload_pic').hide(); 
                                        }
                                       
                                    break;
                                }
                             }   
                        }    
}); 

}
function removeAltDesImage(counter)
{
                                removedDesAlts.push(counter);
                               
                              
                                jQuery('#li_'+counter).remove();
                                jQuery('#uploaded_alt_'+counter).val('');
                                
                                altDesCounter=altDesCounter-1;
                               
                                if(altDesCounter < 10) {
                                  jQuery('#upload_pic').show();   
                                }                                   
                              
                          
}
function validateNewDesignForm() {


var design_validator = jQuery("#add_new_design").validate({
        rules: {
            design_title: { required: true,
                            special:true
                             },
            design_comment : { required: true },
            design_keywords : { required: true }
           /* design_category : {  required: true , noselect:true }*/
        },
        
        messages: {
            design_title:{ 
                        required: "Please enter design title"
                         },
            design_comment:{ 
                        required: "Please explain about your design" 
							},
                                     
            design_keywords:{ 
                          required: "Please enter tag(s) for your design"
                           }
            
          
        }, 
       
        errorPlacement: function(error, element) {
                 error.appendTo(element.next().next()); 
				//alert(error);
        }, 
        
        submitHandler:function(data) {
            
            // alert("in submit");
             jQuery("#add_new_design").ajaxStart(function(){
                                           jQuery("#loading_add_design").show();
                                           jQuery("#loading_txt").show();                                           
                                           jQuery("#submit_add_design").hide(); 
                                            });
                                            
            jQuery("#add_new_design").ajaxComplete(function(request, settings){
                                                  
                                             jQuery("#loading_add_design").hide();
                                             jQuery("#loading_txt").hide(); 
                                             jQuery("#submit_add_design").show();  
                                                 }); 
             if(jQuery("#uploaded_default").val() == "") {
                jQuery("#design_default_error").html('<div class="error">Please select a main image for your design</div>');
             }
             else if(jQuery("#uploaded_thumb").val() == "") {
                jQuery("#design_thumb_error").html('<div class="error">Please select a thumb image for your design</div>'); 
             }
             else {
                jQuery("#design_default_error").html(''); 
                jQuery("#design_thumb_error").html('');
                
                var queryString = jQuery('#add_new_design').formSerialize();
                      
                var options = {
                                url :  baseUrlForJs+'/designs/designs/add',
                                target : '#response',
                                type    : 'POST',
                                data :  queryString,
								success: function (msg) {
                                var chunks = msg.split('|');
								setTimeout("sucessPopDesign(\""+chunks[2]+"\")", 200);
                                
                            		}
                                };
                jQuery.ajax(options);
             }
             
             
             
        }, 
        // set this class to error-labels to indicate valid fields 
        success: function(label) { 
            // set   as text for IE 
            label.html(" ").addClass("checked");
			//alert("validate");
        }
    }); 

}

function sucessPopDesign(result)
{
jQuery.blockUI({ 
message: '<div class="pop_div pop_div_form">'+result+'<br /><div class="link"><img src="'+baseUrlForJs+'/images/pop_bulet.png" width="10" height="10" align="absmiddle"/><a href="'+baseUrlForJs+'" > Go To Home Page</a></div><div class="link"><img src="'+baseUrlForJs+'/images/pop_bulet.png" width="10" height="10" align="absmiddle"/><a href="'+baseUrlForJs+'/'+DESIGNS_URL+'/add"> Add Another Designs</a></div></div>'});
jQuery("#submitB").hide(); 
jQuery("#subB").hide(); 
jQuery("#loading").hide();
jQuery("#loading_txt").hide();
}



function validateDesignPostForm() {
    
    var validator = jQuery("#new_post_form").validate({
    
    
       rules : {design_you_tub : {you_tube_link : true}},
       messages :{design_you_tub: {you_tube_link : 'Enter valide you tub link'}},
       errorPlacement: function(error, element) {
                jQuery("#design_you_tub_error").html('');
                error.appendTo(element.next().next()); 
        },
       submitHandler: function(data) {
       
             /*jQuery("#new_post_form").ajaxStart(function(){
                                           jQuery("#loading_design_post").show();
                                           jQuery("#loading_txt").show();
                                            
                                           jQuery("#submit_design_post").hide(); 
                                            });
                                            
            jQuery("#new_post_form").ajaxComplete(function(request, settings){                    
                                             jQuery("#loading_design_post").hide();
                                             jQuery("#loading_txt").hide();
                                             
                                             jQuery("#submit_design_post").show();  
                                                 }); */
             if(altDesCounter > 0 || jQuery('#designs_post').val() != '' || jQuery('#design_you_tub').val() != ''){
            var queryString = jQuery('#new_post_form').formSerialize();   
            var options = {
                            url :  baseUrlForJs+'/designs/designs/handledesignpost/id/'+jQuery('#current_designs_id').val(),
                            target : '#response',
                            type    : 'POST',
                            data :  queryString,
                            beforeSend :function (XMLHttpRequest){
                                       jQuery("#design_you_tub_error").html('');
                                       jQuery("#loading_design_post").show();
                                       jQuery("#loading_txt").show();
                                        
                                       jQuery("#submit_design_post").hide(); 
                                        },
                            success: function (msg) {
                                jQuery("#loading_design_post").hide();
                                 jQuery("#loading_txt").hide();
                                 
                                 jQuery("#submit_design_post").show(); 
                                 if(jQuery.trim(msg) != 'False'){
                                jQuery('#response').prepend(jQuery.trim(msg));
                                jQuery('#designs_post').val("");
                                jQuery('#no_comments').hide();
                                
                                //ajax call to update the post count
                                jQuery.ajax({
                                    url :  baseUrlForJs+'/designs/designs/getblogcount',
                                    type : 'POST',
                                    data : {id : jQuery('#current_designs_id').val()},
                                    success : function (msg) {
                                        var chunks = msg.split('|');
                                        if(jQuery('#has_design_comment').val() == 'no'){
                                          jQuery('#design_comment_png').show();
                                        }
                                        jQuery('#design_comment_count').hide();
                                        jQuery('#design_comment_count').html('');
                                        jQuery('#design_comment_count').html(chunks[1]+' people');
                                        jQuery('#design_comment_count').show();
                                        jQuery('#design_you_tub').val('');
                                        jQuery("iframe").contents().find("body").empty();
                                        
                                        altDesCounter = 0;
                                        for(var blogCounter = 1; blogCounter <= 10; blogCounter++)
                                        {
                                            jQuery('#li_'+blogCounter).remove();
                                            jQuery('#uploaded_alt_'+blogCounter).val('');
                                            
                                        }
                                        
                                        for(var i=0 ; i < removedDesAlts.length ; i++ ){
                                            removedDesAlts.splice(i, 1);
                                        }
                                       jQuery('#upload_pic').show(); 
                                    }
                                });
                                }else{
                                jQuery.blockUI({ 
                                        message: jQuery('#login_div'), 
                                        css: { width: '375px' }
                                        
                                    });
                                    }
                               }
                            
                            };
            jQuery.ajax(options);
             }else{
             
                jQuery('#design_you_tub_error').show();
                jQuery('#design_you_tub_error').html('<div class="error">You must either comment , youtube link or upload at least one image file </div>');
               
             }
             
        }, 
        success: function(label) {             
            label.html(" ").addClass("checked"); 
        }
    });
}


function vote() {

    var comments='';
    if(jQuery('#vote_comments').val() != 'Please enter your comments here (optional)') {
      var comments = jQuery('#vote_comments').val();
       
    }
   
    jQuery.ajax({
        type : 'POST',
        url : baseUrlForJs+'/designs/designs/handleaddvoting',
        data : 'comments='+comments+'&actual_value='+voteNumber+'&designs_id='+jQuery('#current_designs_id').val(),
        success: function(msg){
            var chunks = msg.split('|');	
            
            if(chunks[1] == 'SUCCESS') {
				
              jQuery.blockUI({ message: '<div class="pop_div pop_div_form">'+chunks[2]+'<br />Average Voting for this Design is '+chunks[3]+'</div>'});
			  var count = parseInt(jQuery('#vote_count').val()) + 1;
              jQuery('#designs_vote_count').html(count+' People');
              jQuery('#designs_vote_avg').html(chunks[3]);
              
              resetVotes(); 
              jQuery('#vote_comments').val('');
              jQuery('#vote_comments').val('Please enter your comments here (optional)');
              if(chunks[4] != ''){
               jQuery('#response').prepend(jQuery.trim(chunks[4]));
               jQuery('#design_comment_count').hide();
                jQuery('#design_comment_count').html('');
                jQuery('#design_comment_count').html(chunks[5]+' people');
                jQuery('#design_comment_count').show();
              }
			  setTimeout(jQuery.unblockUI, 5000);
              
              		 
              //jQuery('#vote_thankyou').html(jQuery('#vote_result_span').html());
              //jQuery('#vote_thankyou').html('hello');
              
              
            }
        }
    }); 
}

function showByCategory() {
    var catId = jQuery('#choose_category').val();
    var url = baseUrlForJs+'/'+DESIGNS_URL+'/'+catId;
    jQuery('#show_cat').attr('action',url).attr('method','POST').submit();
}

function designUploadBlogFile(type) {


new Ajax_upload('#design_'+type, {
                        //action: 'upload.php',
                        action: baseUrlForJs+'/designs/designs/handleblogfile/type/'+type, 
                        name: 'file',
                        onSubmit: function(file, extension) {
                                     jQuery("#design_"+type+"_error").html("");
                                    jQuery("#loading_design_post").show();
                                    jQuery('#design_'+type).hide(); 
                                    jQuery('#submit_design_post').hide(); 
                                    jQuery('#design_you_tub_error').html('')
                                    
                                },

                        onComplete : function(data,response){
                       
                            jQuery("#design_"+type+"_error").html("");
                            jQuery("#loading_design_post").hide();
                            jQuery('#design_'+type).show();
                            jQuery('#submit_design_post').show();  
                            //split the string
                              var result = response.split('|');
                           
                            
                            var otherInc=parseInt(result[3])+1;
                            
                             if(jQuery.trim(result[0]) == "FAILED") {
                                jQuery("#design_"+type+"_error").show();
                                
                                jQuery("#design_"+type+"_error").html(result[1]);
                                  
                                
                             }
                             else {
                             
                             altDesCounter=altDesCounter+1;
                             
                             var ext = result[4];
                             
                             
                             if(removedDesAlts.length > 0) { //user removed some pics
                                
                                removedDesAlts.sort();
                                
                                var emptyAltCounter = removedDesAlts.pop();
                                
                                 jQuery('#uploaded_alt_'+emptyAltCounter).val(jQuery.trim(result[1]));
                                var str = formatImageStr(emptyAltCounter,result[1], result[4]);
                             }
                             else {
                                 jQuery('#uploaded_alt_'+altDesCounter).val(jQuery.trim(result[1]));
                                var str = formatImageStr(altDesCounter,result[1], result[4]);
                               
                             
                             }
                             
                            jQuery('#upload_pic').before(str);
                            if(altDesCounter == 10) {
                               jQuery('#upload_pic').hide(); 
                            }
                            
                             }
                              
                        }    
}); 

}

function formatImageStr(counter, result, ext) {
    if(ext != "null") {
        return '<li class="uploaded_img_preview" id="li_'+counter+'"><img id="'+counter+'_preview" width="50" src="'+baseUrlForJs+'/images/icons/'+ext+'.gif" /><br />'+result+'<br /><span class="change"><a href="javascript:void(0)" onclick="removeAltDesImage(\''+counter+'\')">(Remove)</a></span></li>';
    }
    else {
        return '<li class="uploaded_img_preview" id="li_'+counter+'"><img id="'+counter+'_preview" width="50" src="'+baseUrlForJs+'/temp/thumb_image/'+result+'" /><br /><span class="change"><a href="javascript:void(0)" onclick="removeAltDesImage(\''+counter+'\')">(Remove)</a></span></li>';
    }
    
}

function checkSearchDesigns() {
    jQuery('#loading_search').show();
    jQuery('#search_submit_name').hide();
    jQuery('#search_submit_img').hide();
       jQuery('#search_error_span').html('');  
    /*var validator = jQuery("#search_form").validate({
        rules : {keywords : 
                    {required : true}},
        messages :{keywords: 
                    {required : 'Please enter proper keywords to search'}},
        errorPlacement: function(error, element) {
                */
               
               // alert(jQuery('#keywords').val());
                if(jQuery('#keywords').val() == ''){
					
                jQuery('#search_error_span').html('<div class="error">Please enter proper keywords to search </div>'); 
					
                jQuery('#loading_search').hide();
                jQuery('#search_submit_name').show();
                jQuery('#search_submit_img').show();
                    }else{
                
      //  },
       /* success: function(label) {             
            label.html(" ").addClass("checked"); 
        },
         submitHandler: function(form) {*/
			// alert(encodeURIComponent(jQuery('#keywords').val()));
           location.replace(baseUrlForJs+'/designs/search/'+encodeURIComponent(jQuery('#keywords').val()));
		   //return false;
		 //form.submit();
         }
  //  });
    
                
    
}

