function ajaxPublish(what) {
    $.publish(what);
}

function publish(what, where) {
    ajaxPublish(what);
    showDialog('dialog', 800, 200)
    try {
        document.getElementById("ajaxContentHolder").innerHTML = "";
    } catch(err) {
    }
}

function publishSortEvent() {
    document.getElementById('sortEventListener').click();
}

function changeCategoryResultPage(doForward, previousIndex, totalPages, id, name, sortTypeIndex) {
    var index;
    if(doForward) {
        index = ++previousIndex;
    } else {
        index = --previousIndex;
    }
    if(index > -1 && index < totalPages) {
        submitCategoryForm(id, name, index, sortTypeIndex, false)
    }
}
function changeSearchResultPage(doForward, previousIndex, totalPages, text) {
    var index;
    if(doForward) {
        index = ++previousIndex;
    } else {
        index = --previousIndex;
    }
    if(index > -1 && index < totalPages) {
        submitSearchForm(text, index, document.getElementById('sortType').options[document.getElementById('sortType').selectedIndex].value, false);
    }
}
function changePopularResultPage(doForward, previousIndex, totalPages) {
    var index;
    if(doForward) {
        index = ++previousIndex;
    } else {
        index = --previousIndex;
    }
    if(index > -1 && index < totalPages) {
        submitPopularForm(index)
    }
}

var method = "method:unsubscribe";
function filterSubscribeForm(ele) {
    if(ele.name == method) {
        return false;
    } else {
        return true;
    }
}
function submitSearchForm(searchText, pageIndex, sortTypeIndex, doSort) {
    document.forms['searchForm'].searchText.value = searchText;
    document.forms['searchForm'].pageIndex.value = pageIndex;
    document.forms['searchForm'].sortTypeIndex.value = sortTypeIndex;
    document.forms['searchForm'].doSort.value = doSort;
    document.getElementById('searchForm').submit();
}
function submitCatalogForm(id, name) {
    document.forms['catalogForm'].categoryId.value = id;
    document.forms['catalogForm'].categoryName.value = name;
    document.getElementById('catalogForm').submit();
}
function submitCategoryForm(id, name, pageIndex, sortTypeIndex, doSort) {
    document.forms['categoryForm'].categoryId.value = id;
    document.forms['categoryForm'].categoryName.value = name;
    document.forms['categoryForm'].categoryProductPageIndex.value = pageIndex;
    document.forms['categoryForm'].sortTypeIndex.value = sortTypeIndex;
    document.forms['categoryForm'].doSort.value = doSort;
    document.getElementById('categoryForm').submit();
}
function submitProductForm(keyword, id, name, price, showSubsConfirmation) {
    document.forms['productForm'].action = '/store/products/' + keyword;
    document.forms['productForm'].productId.value = id;
    document.forms['productForm'].productName.value = name;
    document.forms['productForm'].productPrice.value = price;
    document.forms['productForm'].showConfirmation.value = showSubsConfirmation;
    document.getElementById('productForm').submit();
}
function submitPublisherForm(id, publisherPrefix, name, pageIndex) {
    document.forms['publisherForm'].action = "/store/publishers/" + publisherPrefix;
    document.forms['publisherForm'].publisherId.value = id;
    document.forms['publisherForm'].publisherName.value = name;
    document.forms['publisherForm'].pageIndex.value = pageIndex;
    document.getElementById('publisherForm').submit();
}
function submitAjaxSubscription(id, name, price, paidsubscription, freetrial, freeDuration, confirmed) {
    document.forms['subscriptionForm'].productId.value = id;
    document.forms['subscriptionForm'].productName.value = name;
    document.forms['subscriptionForm'].productPrice.value = price;
    document.forms['subscriptionForm'].paidSubscription.value = (paidsubscription == 'null' ? '' : paidsubscription);
    document.forms['subscriptionForm'].freeTrialWanted.value = (freetrial == 'null' ? '' : freetrial);
    document.forms['subscriptionForm'].freeDuration.value = freeDuration;
    document.forms['subscriptionForm'].confirmed.value =  (confirmed == 'null' ? '' : confirmed);
    publish('subscribe', 'subscriptionRequestAjax');
}

function submitAjaxSubscriptionForm(id, name, price, paidsubscription, freetrial, freeDuration, confirmed) {
    document.forms['subscriptionForm'].productId.value = id;
    document.forms['subscriptionForm'].productName.value = name;
    document.forms['subscriptionForm'].productPrice.value = price;
    document.forms['subscriptionForm'].paidSubscription.value = (paidsubscription == 'null' ? '' : paidsubscription);
    document.forms['subscriptionForm'].freeTrialWanted.value = (freetrial == 'null' ? '' : freetrial);
    document.forms['subscriptionForm'].freeDuration.value = freeDuration;
    document.forms['subscriptionForm'].confirmed.value =  (confirmed == 'null' ? '' : confirmed);
    document.getElementById("methodUSTextField").disabled = true;
    document.getElementById("methodSTextField").disabled = false;
    publish('subscribe', 'subscriptionRequestAjax');
}

function submitAjaxUnsubscribeForm(id, name, confirmed){
    document.forms['subscriptionForm'].productId.value = id;
    document.forms['subscriptionForm'].productName.value = name;
    document.forms['subscriptionForm'].productPrice.value = '';
    document.forms['subscriptionForm'].paidSubscription.value = '';
    document.forms['subscriptionForm'].freeTrialWanted.value = '';
    document.forms['subscriptionForm'].freeDuration.value = '';
    document.forms['subscriptionForm'].confirmed.value =  (confirmed == 'null' ? '' : confirmed);
    document.getElementById("methodUSTextField").disabled = false;
    document.getElementById("methodSTextField").disabled = true;
    publish('subscribe', 'subscriptionRequestAjax');
}
function submitPopularForm(pageIndex) {
    document.forms['popularForm'].productPageIndex.value = pageIndex;
    document.getElementById('popularForm').submit();
}

var currentPageIndex = 0;

function submitViewMessagesForm(channelId, type, pageIndex, pageLimit, fromDate, totalCount) {
    currentPageIndex += pageIndex;
    document.forms['viewmessagesForm'].channelId.value = channelId;
    document.forms['viewmessagesForm'].type.value = type;
    document.forms['viewmessagesForm'].pageIndex.value = currentPageIndex;
    document.forms['viewmessagesForm'].pageLimit.value = pageLimit;
    document.forms['viewmessagesForm'].fromDate.value = fromDate;
    document.forms['viewmessagesForm'].totalCount.value = (totalCount!=null)?totalCount:'';
    ajaxPublish("viewmessages");
    try {
        document.getElementById("viewmessagesResult").innerHTML = "";
    } catch(err) {
    }    
}

function trim(obj) {
    var str = obj.value;
    obj.value = str.replace(/^\s*/, '').replace(/\s*$/, '');
}

function squeeze(obj) {
    var str = obj.value;
    obj.value = str.replace(/^\s*/, '').replace(/\s*$/, '').replace(/\s+/g, ' ');
}
