var responseMessage = "Refreshing content, please wait";
var zapptype='poll';

function callAHAH(url, pageElement, callMessage, errorMessage,actionType) {
    if(url.indexOf('?')>0){
	    url+='&ajax=true';
	}else{
		url+='?ajax=true';
	}
   // document.getElementById(pageElement).innerHTML = callMessage;
    try {
        req = new XMLHttpRequest();
        /* e.g. Firefox */
    } catch(e) {
        try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
            /* some versions IE */
        } catch (e) {
            try {
                req = new ActiveXObject("Microsoft.XMLHTTP");
                /* some versions IE */
            } catch (E) {
                req = false;
            }
        }
    }
    req.onreadystatechange = function() {
		if(actionType == undefined || actionType == null){
			responseAHAH(pageElement, errorMessage);
		}
		else{
			actionTypeResponseAHAH(pageElement, errorMessage);
		}
    };
    req.open("POST", url, true);
    req.send(null);
}

function callPost(url, param, pageElement, callMessage, errorMessage,actionType) {
    if(param.length==0){
	    param+='ajax=true';
	}else{
		param+='&ajax=true';
	}
    //document.getElementById(pageElement).innerHTML = callMessage;
    try {
        req = new XMLHttpRequest();
        /* e.g. Firefox */
    } catch(e) {
        try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
            /* some versions IE */
        } catch (e) {
            try {
                req = new ActiveXObject("Microsoft.XMLHTTP");
                /* some versions IE */
            } catch (E) {
                req = false;
            }
        }
    }
    req.onreadystatechange = function() {
		if(actionType == undefined || actionType == null){
			responseAHAH(pageElement, errorMessage);
		}
		else{
			actionTypeResponseAHAH(pageElement, errorMessage);
		}
    };
    req.open("POST", url, true);
    req.send(param);
}

function responseAHAH(pageElement, errorMessage) {
    if (req.readyState == 4) {
        if (req.status == 200) {
            output = req.responseText;
            if(pageElement==null){
                alert(output);
            }else{
                document.getElementById(pageElement).innerHTML = output;
            }
            if(pageElement=='zappform'){
                document.getElementById('selectedzapp').innerHTML = zapptype;
                initCounter();
            }
            if(comments != undefined && comments) {
                refreshCommentsEvents();
            }

            refreshPagination();
            hideRefresh();
			FB.XFBML.Host.parseDomTree();

        } else {
            if(pageElement==null){
                alert(req.responseText);
            }else{
                document.getElementById(pageElement).innerHTML = errorMessage + "\n" + req.responseText;
            }
            hideRefresh();
			    FB.XFBML.Host.parseDomTree();

        }
    }
}

var selectedCatid = -1;
var viewType = -1;

function showRefresh(){
//    $('#help').hide();
    $('#status').show();
}

function hideRefresh(){
	$('#status').hide();
//    $('#help').show();
}

function makeactiveCat(tab,link,catid,total) {
	showRefresh();
    for(var i=0; i<total-1 ; i++){
        document.getElementById("cat"+i).className = "tab cat"+i;
    }
//    document.getElementById("cat1").className = "tab";
//    document.getElementById("cat2").className = "tab";
//    document.getElementById("cat3").className = "tab";
//    document.getElementById("cat4").className = "tab";
//    document.getElementById("cat5").className = "tab";
//    document.getElementById("cat6").className = "tab";
    document.getElementById("cat-2").className = "tab cat-2";
    document.getElementById("cat" + tab).className = "selectedtab cat"+tab;

    if(tab != -1){
        selectedCatid = ++tab;
        $('#selcat').html(selectedCatid);
    }
    link = link + '?category.id=' + catid;
	viewType = -1;
    callAHAH(link, 'zapps', responseMessage, 'Error','categoryAction');
}

function makeTabActive(tab,link) {
	showRefresh();
    document.getElementById("tab1").className = "subtabtext";
    document.getElementById("tab2").className = "subtabtext";
    document.getElementById("tab" + tab).className = "subtabtextselected";
    link = link + '?category.id=' + getCatId();
    callAHAH(link, 'zapprows', responseMessage, 'Error');
}

function makeTabActive(tab,link,changeid) {
	showRefresh();
    document.getElementById("tab1").className = "subtabtext";
	if(document.getElementById("tab2") != undefined)
	{
		document.getElementById("tab2").className = "subtabtext";
	}
	if(document.getElementById("tab3") != undefined)
	{
		document.getElementById("tab3").className = "subtabtext";
	}
	if(document.getElementById("tab4") != undefined)
	{
		document.getElementById("tab4").className = "subtabtext";
	}
    document.getElementById("tab" + tab).className = "subtabtextselected";
	viewType = tab;
    link = link + '?category.id=' + getCatId() + '&d-49653-p=1&viewType='+viewType;
    callAHAH(link, changeid, responseMessage, 'Error','viewType');
}

function makeactive(tab,link,changeid) {
    document.getElementById("tab1").className = "subtabtext";
    document.getElementById("tab2").className = "subtabtext";
    document.getElementById("tab" + tab).className = "subtabtextselected";
    link = link + '?category.id=' + getCatId();
    callAHAH(link, changeid, responseMessage, 'Error');
}

function makeactive(tab,link,divid) {
    document.getElementById("tab1").className = "subtabtext";
    document.getElementById("tab2").className = "subtabtext";
    document.getElementById("tab" + tab).className = "subtabtextselected";
    callAHAH(link, divid, responseMessage, 'Error');
}

function makezappactive(tab,type,link) {
    document.getElementById("tab1").className = "subtabtext";
    document.getElementById("tab2").className = "subtabtext";
    document.getElementById("tab3").className = "subtabtext";
    //document.getElementById("tab4").className = "subtabtext";
    document.getElementById("tab" + tab).className = "subtabtextselected";
    callAHAH(link, 'zappform', responseMessage, 'Error');
    zapptype = type;
    initCounter();
}

function submitAnswer(alias,code,zappID,answer){
    var link = 'public/answerZapp.action?zappID=' + zappID + '&' + 'answer=' + answer + '&' + 'alias=' + alias;
    document.getElementById("submitprogress"+zappID).style.display = "";
    callAHAH(link, code, 'Submitting answer. Please wait...', 'Error','Answers');
    openForComment(zappID);
}

function getResponses(code,zappID){
    var link = 'public/zappResponses.action?zappID=' + zappID;
    callAHAH(link, code, responseMessage, 'Error', "Responses");
}

var userId = -1;
function showSubsWin(user){
	userId = user;
	document.getElementById("subscribewin").style.display = "";
}
function closeSubsWin(){
	document.getElementById("subscribewin").style.display = "none";
}

function editPasswd(passwdForm){
	passwdForm.currPasswd.value=document.editProfileForm.currPasswd.value;
	passwdForm.newPasswd.value=document.editProfileForm.newPasswd.value;
	passwdForm.confirmPasswd.value=document.editProfileForm.confirmPasswd.value;
	passwdForm.submit();
	return true;
}
function zappsCreatedByUser(link,userId){
	link = link + '?userId=' + userId+ '&category.id=' + getCatId();
	callAHAH(link,'zapprows', responseMessage, 'Error');
}

function navigate(link)
{
	var action="public/navigate.action";
	if(docType != undefined && docType=="MyZapps")
	{
		action="public/navigateMyZapps.action";
	}
	else if(docType != undefined && docType=="RespondedZapps")
	{
		action="public/navigateRespondedZapps.action";
	}
    else if(docType != undefined && docType=="SharedZapps")
	{
		action="public/navigateSharedZapps.action";
	}
    link = action + link + '&viewType=' + getViewType() + '&category.id=' + getCatId();
	callAHAH(link,'zapps', responseMessage, 'Error',"responseAHAH1");
}

function actionTypeResponseAHAH(pageElement, errorMessage) {
    if (req.readyState == 4) {
        if (req.status == 200) {
            output = req.responseText;
            if(pageElement==null){
                alert(output);
            }else{
                document.getElementById(pageElement).innerHTML = output;
            }
            if(comments != undefined && comments) {
                refreshCommentsEvents();
            }
            if(pageElement=='zappform'){
                document.getElementById('selectedzapp').innerHTML = zapptype;
                initCounter();
            }
            refreshPagination();
            hideRefresh();
            rateAnswer();
            selectSubTab();

			    FB.XFBML.Host.parseDomTree();

        } else {
            if(pageElement==null){
                alert(req.responseText);
            }else{
                document.getElementById(pageElement).innerHTML = errorMessage + "\n" + req.responseText;
            }
            hideRefresh();
            selectSubTab();
			    FB.XFBML.Host.parseDomTree();

        }
    }
}

function rateAnswer(){
     $('.rate').each(function(){
			var inid = $(this).attr('name');
			$(this).stars({
				captionEl: $("#rating"+inid),
				callback: function(ui, type, value){
			       var rid = ui.options.name;
				   submitAnswer('1',rid,rid,value);
				}
			}
			);
		 });

}

function selectSubTab() {
	if(getViewType() == "-1"){
		document.getElementById("tab1").className="subtabtextselected";
	}else{
		document.getElementById("tab"+getViewType()).className="subtabtextselected";
	}
	if(typeof(commentsFlag) != "undefined") {
		addCommentsSection();
	}
}

function login(url){
    var userName = $("#j_username").val();
    var password = $("#j_password").val();
    var param = "j_username="  + userName + "&j_password=" + password;
    var finalUrl = url + "?" + param;
    callAHAH(finalUrl,'content','Logging In','Sorry, there seems to be some problem. Please try again.');
}
