function submitSearch(id, searchFor){
	if(!searchFor)
		searchFor = 'search';
	if(document.getElementById(id).value == ''){
		alert("Enter some keywords to search for");
		return;
	}
	new_form = document.createElement('form');
	new_form.action = '/'+searchFor+'/'+encodeURIComponent(document.getElementById(id).value)+'/';
	document.body.appendChild(new_form);
	new_form.submit();
}

function validate_advsearchform(form){
	var allFieldsEmpty = new Boolean(true);
	for(var i=0; i<form.length-1; i++){
		var fieldVal = form.elements[i].value;
		if ( fieldVal.replace(/^\s+|\s+$/g, "") != ""){
			allFieldsEmpty = new Boolean(false);
		}	
	}
	if ( allFieldsEmpty == true){
		alert('Not all fields should be left empty');
		return false;
	}			
	return true;
}

function submitForm(formName){
	if (formName != null && formName != ""){
		document.forms[formName].submit();
	}
	else{
		document.forms.form.submit();
	}
}

function submitPoemForm(){
	poem_title = document.getElementById('id_poemTitle').value;
	poem_content = document.getElementById('id_poemContent').value;

	if(jQuery.trim(poem_title) == '' || jQuery.trim(poem_content) == ''){
		alert("Enter a title and poem before submitting");
		return;
	}

	submitForm('poemSubmission');

}

function showPoemsInCategory(){
	sc = document.getElementById('searchCategory').value;
	if(sc != ''){
		document.location = "/category/"+sc;
	}
	else {
		alert("Select a category to browse");
	}
	return;
}

/* Tag add/delete methods on poem page */

function deletePoem(){
        val = confirm("Are you sure you want to delete this poem?");
        if(val == false){
                return;
        }
        document.deletePoem.submit();
}

function addTags(poem_id, userid, tags){
	var tags_array = getIndividualTags(tags);
	var finalTags = new Array();
	var offset = 100000;
	for(var j=0;j<tags_array.length;j++){
		var tag = tags_array[j];
		if(isTagPresent("myTags", tag))
			continue;
		if(isTagTooLong(tag))
			continue;
		finalTags.push(tag);
		var myTagId = 'mytag_' + offset ;
		var parentTagID = 'mytag_parent_' + offset;
		var html = "<span id='"+parentTagID+"'>"+
				"<span id='"+myTagId+"'>"+tag+"</span>"+
				"(<a href='javascript:void(0);' "+
					"onclick='javascript:deleteTag(\"" +
						poem_id +
							"\", \"" +
						userid +
							"\", \"" +
						myTagId+
					"\")'>x</a>)&nbsp;"+
			    "</span>";

		jQuery.post('/tags/add/', 
				{poem_id: poem_id, userid:userid, tags: tag}, 
				function(data){
					if(data.s == 1){
						document.getElementById('myTags').innerHTML += html ;
						offset = offset + 1;
					}else{
						alert("Can not add tag " + tag);
					}
				}, 
			"json");		
	}
}

function getIndividualTags(tags){
        tags_array = tags.split(',');
        for(i=0;i<tags_array.length;i++){
                tags_array[i] = jQuery.trim(tags_array[i]);
        }
        return tags_array;
}

function deleteTag(poem_id, userid, tag_id, deleteall){
	var alltags_parent_id	= 'span#alltags_parent_' + tag_id;
	var alltags_id	 	= 'span#alltags_' + tag_id ;
	var mytags_parent_id  	= 'span#mytag_parent_' + tag_id;
	var mytag_id		= 'span#mytag_' + tag_id;
	var tag = null;
	
	if(deleteall ==null){
		deleteall = 'NO';
		tag = jQuery(mytag_id).html();	
	}else{
		deleteall = 'YES';
		tag = jQuery(alltags_id).html();	
	}
	jQuery.post('/tag/delete/', 
			{poem_id: poem_id, userid:userid, tag: tag, deleteall: deleteall},
			function(data){ 
				if(data.s == 1){
					if( deleteall == 'YES'){
						jQuery(alltags_parent_id).remove();
					}
					jQuery(mytags_parent_id).remove();		
				}else{
					alert("delete failed");
				}
			}, 
		"json");
}

function isTagPresent(tagLocation, tag){
        if(tagLocation == 'allTags'){
                return false;
        }else{
		var tags = jQuery("div#myTags > span").children("span");
		for(i=0;i<tags.length;i++){
			var localtag = jQuery(tags[i]).html();
			if( localtag == tag)
				return true;
		}
                return false;
        }
}

function isTagTooLong(tag){
        if(tag == null)
                return false;
        var leftTrimmedTag = tag.replace('/^[^a-zA-Z0-9]+/gi', '');
        var rightTrimmedTag= leftTrimmedTag.replace('/[^a-zA-Z0-9]+$/g', '');
        var spaceTrimmedTag= rightTrimmedTag.replace('/\s+/g', " ");
        var specialCharTrimmedTag = spaceTrimmedTag.replace("/[^a-zA-Z0-9]+/gi", " ");
        var words = specialCharTrimmedTag.split(" ");
        if (words.length <=3){
                return false;
        }else{
                return true;
        }
}

function submitAdvSearch(page){
	var srchfrom = document.getElementById("advsrch");
	var page_input = document.createElement('input');
	page_input.name = 'page';
	page_input.value= page.toString();
	page_input.type = "hidden";
	srchfrom.appendChild(page_input);
	srchfrom.submit();			
}

function wordCount(msg){
	if( msg == null)
		return 0;
	var leftTrimmedMsg	= msg.replace('/^[^a-zA-Z0-9]+/gi', '');
	var rightTrimmedMsg	= leftTrimmedMsg.replace('/[^a-zA-Z0-9]+$/gi', '');
	var spaceTrimmedMsg	= rightTrimmedMsg.replace('/\s+/g', " ");
	var spCharTrimmedMsg	= spaceTrimmedMsg.replace('/[^a-zA-Z0-9]+/gi', " ");
	var words	= spCharTrimmedMsg.split(" ");
	return words.length;
}

function validateSumbitReviewFrom(formData, jqForm, options){
	for(var i =0; i< formData.length; i++){
		if( formData[i].name == "review"){
			if( wordCount(formData[i].value) > 250){
				alert('review should not contain more than 250 words');
				return false;
			}
		}
	}
}

function submitReviewFormCBOnSuccess(response, statusText, xhr, $form){
	if( response.s == 1){
		jQuery("div.submitReview").remove();
		updateReviews(response.poem_id, 1);	
	}			
}

function updateReviews(poem_id, page_num){
	jQuery("div#poemReviewsBlock").empty();
	var url = "/ajax/get_reviews/" + poem_id.toString() + "/";
	jQuery.get(url, {page: page_num}, 
			function(data){
				jQuery("div#poemReviewsBlock").append(data.html);
				jQuery("#subrvw").ajaxForm({
					dataType: 'json',
					beforeSubmit: validateSumbitReviewFrom,
					success:  submitReviewFormCBOnSuccess
				});
				jQuery("form#report_poem > input").bind('click', function(){
					submitPoemIssue();	
				});				
		}, "json");	
}   

function submitPoemIssue(){
	var poem_id 	= jQuery("form#report_poem > input[name='poem_id']").val();
	var poem_url 	= window.location.href;
	var html = "<input type='text' name='poem_url' value='"+ poem_url  +"' style='display:none;'/>";
	jQuery("form#report_poem").append(html);	
	jQuery("form#report_poem").ajaxSubmit();
	jQuery("form#report_poem").remove();
	jQuery("a#report_issue").remove();	
	return false;			
}

function deleteReview(poem_id, user_id ){
	var url = "/ajax/del_review/" + poem_id + "/" + user_id + "/";
	jQuery.get(url, {}, function(data){
			if(data.r){
				updateReviews(poem_id, 1);
			}else{
				alert("delete failed - please try after a while");
			}			
		}, "json");			
} 

function deleteUserReview(poem_id, user_id ){
	var url = "/ajax/del_review/" + poem_id + "/" + user_id + "/";
	jQuery.get(url, {}, function(data){
			if(data.r){
				var t1 = location.hostname;
				var url2 = "http://" + t1 + "/reviews/" + user_id + "/";
				window.location = url2;
			}else{
				alert("delete failed - please tray after a while");
			}	
		}, "json");		
}

function updateWinnerBoard(dttm){
	var dt = dttm.getDate();
        var mon= dttm.getMonth() + 1;
        var yr = dttm.getFullYear();
        var dt_str = yr + "-" + mon + "-" + dt;
	var daily_hdr = 'Daily Winners : ' + yr + "/" + mon + "/" + dt;	
	var mnthly_hdr= 'Monthly Winners : ' + yr + "/" + mon ;
	var yearly_hdr= 'Yearly Winners : ' + yr;
	var no_data_msg = '<center><b>No winners found.</b></center>';
	jQuery.post("/ajax/contest_winner/", {date: dt_str}, function(data){
			jQuery("a[href='#tabs-1']").html(daily_hdr);
			jQuery("a[href='#tabs-2']").html(mnthly_hdr);
			jQuery("a[href='#tabs-3']").html(yearly_hdr);
			if(data.s == 0){
				jQuery('div#tabs-1').html(no_data_msg);
				jQuery('div#tabs-2').html(no_data_msg);
				jQuery('div#tabs-3').html(no_data_msg);							
			}else{
				if( data.r.daily == undefined ){
					jQuery('div#tabs-1').html(no_data_msg);
				}else{
					jQuery('div#tabs-1').html(data.r.daily);
				}
				if( data.r.monthly == undefined ){
					jQuery('div#tabs-2').html(no_data_msg);
				}else{
					jQuery('div#tabs-2').html(data.r.monthly);
				}
				if( data.r.yearly == undefined ){
					jQuery('div#tabs-3').html(no_data_msg);
				}else{
					jQuery('div#tabs-3').html(data.r.yearly);
				}
			}
		}, "json");	
}
