// $Id:

var uploadPhoto_interval;
var uploadPhotoWindow;
var installApp_interval;
var applyPatch_interval;
var proReqi18Arr = new Array();

function byId(id) {
    return document.getElementById(id);
}

function isUnDef(ele) {
    return (typeof(ele) == "undefined");
}

function isSuccess(result) {
    return (result.toLowerCase().indexOf("success") != -1);
}

function toggleElement(ele, display)
{
    if (isUnDef(display))
    {
        display = "block";
    }
    var eStyle = ele.style;
    if (eStyle.visibility == "hidden")
    {
        eStyle.visibility = "visible";
        if (eStyle.display == "none")
        {
            eStyle.display = display;
        }
        return;
    }
    if (eStyle.display == display)
    {
        eStyle.display = "none";
    }
    else
    {
        ele.style.display = display;
    }
}

function showDiv(id, display)
{
    var ele = byId(id);
    if (isUnDef(display))
    {
        display = "block";
    }
    ele.style.display = display;
    ele.style.visibility = 'visible';
}

function hideDiv(id)
{
    var ele = byId(id);
    ele.style.display = 'none';
    ele.style.visibility = 'hidden';
}

function toggleDiv(id, display)
{
    toggleElement(byId(id), display);
}

function toggleElements(ele1, ele2, selectedEle1, selectedEle2, listentopic1, listentopic2, header1, header2)
{
    if (ele1.style.display == "block")
    {
        ele1.style.display = "none";
        ele2.style.display = "block";
        if (!isUnDef(selectedEle1) && selectedEle1 != null)
        {
            selectedEle1.className = "";
        }
        if (!isUnDef(selectedEle2) && selectedEle2 != null)
        {
            zs_switchInfoTabs(selectedEle2);
        }
        if(!isUnDef(listentopic2))
        {
            dojo.event.topic.publish(listentopic2);
        }
        if(!isUnDef(header2))
        {
            byId("page-header").innerHTML = header2;
        }
    }
    else
    {
        ele1.style.display = "block";
        ele2.style.display = "none";
        if (!isUnDef(selectedEle2) && selectedEle2 != null)
        {
            selectedEle2.className = "";
        }
        if (!isUnDef(selectedEle1) && selectedEle1 != null)
        {
            zs_switchInfoTabs(selectedEle1);
        }
        if(!isUnDef(listentopic1))
        {
            dojo.event.topic.publish(listentopic1);
        }
        if(!isUnDef(header1))
        {
            byId("page-header").innerHTML = header1;
        }
    }
}

function toggleDivs(id1, id2, selectedEle1, selectedEle2, listentopic1, listentopic2, header1, header2)
{
    var ele1 = byId(id1);
    var ele2 = byId(id2);
    toggleElements(ele1, ele2, selectedEle1, selectedEle2, listentopic1, listentopic2, header1, header2);
}

function closeLoading()
{
    closeDialog();
}

function showLoading(topPos, leftPos, message, srcEle)
{
    if (isUnDef(topPos))
    {
        topPos = 0;
    }
    if (isUnDef(leftPos))
    {
        leftPos = 0;
    }
    if (isUnDef(message) || message == null)
    {
        message = "Loading...";
    }
    if (!isUnDef(srcEle) && srcEle != null)
    {
        srcEle = ", srcElement=" + srcEle;
    }
    else
    {
        srcEle = "";
    }
    showURLInDialog(ZS_CONTEXTPATH + "/jsp/includes/loading.jsp?message=" + message, "modal=no, position=relative, top=" + topPos + ", left=" + leftPos + ", transitionInterval=80,closeOnEscKey=no, closeOnBodyClick=no, closeButton=no" + srcEle);
}

function showMessages(text, error, divId)
{
    if (isUnDef(divId))
    {
        divId = "zs_messages";
        var message_con = byId("zs_messages_con");
        message_con.style.display = 'block';
        message_con.style.marginTop = "0px";
        message_con.style.visibility = 'visible';
    }
    var message = byId(divId);
    if (isUnDef(error) || !error)
    {
        text = "<ul><li>" + text + "</li></ul>";
    }
    message.innerHTML = text;
}

function showMessagesCon()
{
    var message = byId("zs_messages_con");
    if (message == null)
    {
        return;
    }
    if (byId("zs_messages").innerHTML.length > 0)
    {
        message.style.display = 'block';
    }
}

function hideMessages(check)
{
    var message = byId("zs_messages_con");
    if (message == null)
    {
        return;
    }
    if (!isUnDef(check) && check)
    {
        if (byId("zs_messages").innerHTML.length > 0)
        {
            return;
        }
    }
    message.style.display = 'none';
}

function clearMessages(interval)
{
    var message = byId('zs_messages');
    if (message != null && message.getElementsByTagName('ul').length == 0)
    {
        message.innerHTML = "";
        return;
    }
    var reqOptions = {ONCLOSE:hideMessages,INTERVAL:3};
    MCEffect.SlideUp('zs_messages_con', reqOptions);
}

function showNotificationAtOnce()
{
	var con = byId("zs_notification_con");
	con.style.display = 'block';
	con.style.marginTop = "0px";
	con.style.visibility = 'visible';
}

function showNotification(text, showAtOnce)
{
	byId("zs_notification").innerHTML = text;
	if (!isUnDef(showAtOnce) && showAtOnce)
	{
        showNotificationAtOnce();
	}
	else
	{
		cur = byId('zs_notification_con');
		cur.style.display="block";
		cur.style.height="0px";
        var height = 65;
        if (browser_ie)
        {
            height = 70;
        }
        rollout(height);
	}
}

function clearNotification()
{
	cur = byId('zs_notification_con');
	rollin(0);
}

var delay=1;
var cur;
var stimer;
function rollout(z)
{
	if(stimer)
	{
		window.clearTimeout(stimer);
	}
	if(parseInt(cur.style.height) < z)
	{
		cur.style.height=(parseInt(cur.style.height)+delay)+'px';
		stimer=setTimeout('rollout('+z+')',1);
	}
	else
	{
		cur.style.height=z+'px';
	}
}

function rollin(z)
{
	if(stimer)
	{
		window.clearTimeout(stimer);
	}
	if(parseInt(cur.style.height) > z)
	{
		cur.style.height=(parseInt(cur.style.height)-delay)+'px';
		stimer=setTimeout('rollin('+z+')',1);
	}
	else
	{
		cur.style.height=z+'px';
		cur.style.display='none';
	}
}

function showHelpContent(helpContent, srcElement)
{
    showDialog(helpContent, 'position=relative,srcElement=' + srcElement + ',closeButton=no,closeOnBodyClick=yes');
}

function zs_editAppTags()
{
    byId("tagsForm").style.display="block";
    byId("showAppTags").style.display="none";
    byId("editAppTags").style.display="none";
    byId("updateAppTags").style.display="block";
}

function zs_saveAppTags()
{
    getHtmlForForm(byId("saveTagId"),"zs_postEditTags");
    byId("showAppTags").innerHTML = tagsFrm.appTags.value;
}

function zs_postEditTags(result)
{
    if (isSuccess(result))
    {
        var appTags = tagsFrm.appTags.value;
        byId("tagsForm").style.display="none";
        byId("showAppTags").style.display="block";
        byId("editAppTags").style.display="inline";
        byId("updateAppTags").style.display="none";
        zs_reinitTags(appTags);
    }
}

function zs_cancelAppTags()
{
    byId("tagsForm").style.display="none";
    byId("showAppTags").style.display="block";
    byId("editAppTags").style.display="inline";
    byId("updateAppTags").style.display="none";
}

function zs_reinitTags(appTags)
{
    var tagsList = appTags.split(",");
    var tagsStr = "";
    for (var i = 0; i < tagsList.length; i++)
    {
        var tag = tagsList[i];
        tagsStr += "<a href='/public/search?appName=" + tag  + "'>" + tag + "</a>&nbsp;";
    }
    byId("showAppTags").innerHTML = tagsStr;
}

function zs_editLicType()
{
    byId("updateLicType").style.display="block";
    byId("changeLicType").style.display="block";
    byId("dispLicType").style.display="none";
    byId("editLicType").style.display="none";     
}

function zs_saveLicType()
{
    getHtmlForForm(byId("saveLicId"),"zs_postLicType");
    var licType = saveLicId.licenseType.value;
    var price = saveLicId.price.value;
    if(licType == 1)
    {
        byId("dispLicType").innerHTML = "Free";
    }    
    else
    {
        if(price == "")
        {
           byId("dispLicType").innerHTML = "Paid";
        }
        else
        {
           byId("dispLicType").innerHTML = "Paid ($"+price+")";
        }
    }
}

function zs_postLicType(result)
{
    if (isSuccess(result))
    {
        byId("updateLicType").style.display="none";
        byId("changeLicType").style.display="none";
        byId("editLicType").style.display="inline"; 
        byId("dispLicType").style.display="inline";
    }
}

function zs_cancelLicType()
{
    byId("updateLicType").style.display="none";
    byId("changeLicType").style.display="none";
    byId("editLicType").style.display="inline"; 
    byId("dispLicType").style.display="inline";
}

function zs_editAppDesc()
{
    var appDescFckEditor = FCKeditorAPI.GetInstance('appEditDescField');
    byId("pageDesc").style.display = "none";
    byId("descForm").style.display = "block";
    byId("editDesc").style.display = "none";
    byId("updateDesc").style.display = "block";
    appDescFckEditor.SetHTML(saveDesc.aboutPage.value);
 }

function zs_saveAppDesc()
{
    var appDescFckEditor = FCKeditorAPI.GetInstance('appEditDescField');
    if (appDescFckEditor.IsDirty())
    {
       saveDesc.aboutPage.value = appDescFckEditor.GetXHTML(true);
    }
    getHtmlForForm(byId("saveDescId"), "zs_showAppDesc"); 
    byId("pageDesc").innerHTML = saveDesc.aboutPage.value;
}

function zs_cancelAppDesc()
{
   byId("descForm").style.display = "none";
   byId("pageDesc").style.display = "block";
   byId("editDesc").style.display = "block";
   byId("updateDesc").style.display = "none";
}

function zs_showAppDesc(result)
{
    if (isSuccess(result))
    {
      byId("descForm").style.display = "none";
      byId("pageDesc").style.display = "block";  
      byId("editDesc").style.display = "block";
      byId("updateDesc").style.display = "none";
    }        
}

function zs_showPublishApp(appId, appName, callbackUrl, placeItDown, left)
{
    if (isUnDef(left))
    {
        left = 210;
    }
    if (!isUnDef(placeItDown) && placeItDown)
    {
        showLoading(2, 14);
    }
    else
    {
        showLoading(-25, 115);
    }
    if (!isUnDef(callbackUrl) && callbackUrl != null)
    {
        showURLInDialog('/home/showPublishApp?appId=' + appId + '&appName=' + appName + '&callbackUrl=' + callbackUrl, "title=Publish Application, modal=no, position=relative, top=10, left=" + left +  ", height=228,width=337,transitionInterval=80,closeOnEscKey=yes" );
    }
    else
    {
        getHtml("/home/ajax_showPublishApp?publishMode=true&appId=" + appId, "zs_postShowApps");
    }
}

function publishApp(frm, returnTrue)
{
    returnTrue = (!isUnDef(returnTrue) && returnTrue);
    var action = "";
    if (returnTrue)
    {
        action = "/public/showAppInfo?ownername=" + frm.ownername.value + "&callbackUrl=" + frm.callbackUrl.value;
    }
    var reqOptions = {APPID:frm.appId.value, RETURNTRUE:returnTrue, ACTION:action, ISREPUBLISH:frm.global.value};
    getHtmlForForm(frm, "postPublishApp", reqOptions);
    return false;
}

function postPublishApp(result, reqOptions)
{
    var appId = reqOptions["APPID"];
    var returnTrue = reqOptions["RETURNTRUE"];
    if (isSuccess(result))
    {
        showMessages("Application published successfully.");
        var publishDiv = byId("publishDiv" + appId);
        if (publishDiv != null)
        {
            publishDiv.getElementsByTagName("a")[0].innerHTML = "Republish";
        }
        var zs_appInfo_appdesc = byId("zs_appInfo_appdesc" + appId);
        if (zs_appInfo_appdesc != null)
        {
            if (reqOptions["ISREPUBLISH"])
            {
                zs_showApps(false, false, true);
            }
            zs_reinitTags(appId, byId("publishFrmTags").value);
            zs_appInfo_appdesc.innerHTML = byId("publishFrmAboutPage").value;
        }
        closeDialog();
        //clearMessages();
    }
    if (returnTrue)
    {
        location.href = reqOptions["ACTION"];
    }
}

function search(frm,e) {
    var keyChar = String.fromCharCode(e.which);
    if (e.which == 13)
    {
        frm.submit();
    }
}

function zs_validateSearchString(frm, isAjax, hideLeftStrip)
{
    var appName = frm.appName.value;
    var category = frm.category.value;
    if (appName == "Search Apps...")
    {
        frm.appName.value = "";
        appName = "";
    }
    if (category == -1 && appName.length < 1)
    {
        alert(i18Arr['zc.app.search.entersearchstring']);
        frm.appName.focus();
        return false;
    }
    appName = encodeURIComponent(appName);
    category = encodeURIComponent(category);
    if (isAjax)
    {
        if (isUnDef(hideLeftStrip))
        {
            hideLeftStrip = true;
        }
        searchApp(appName, category, '', null, hideLeftStrip);
        return false;
    }
    return true;
}

function searchApp(appName, category, ownername, callbackFunctionName, hideLeftStrip, limit)
{
    if (byId("zs_buffered_contentarea") == null)
    {
        window.location.href = "/public/search?appName=" + appName + "&category=" + category;
        return;
    }
    if (isUnDef(callbackFunctionName) || callbackFunctionName == null)
    {
        callbackFunctionName = "showSearchResults";
    }
    if (isUnDef(appName))
    {
        appName = "";
    }
    if (isUnDef(category))
    {
        category = -1;
    }
    if (isUnDef(ownername))
    {
        ownername = "";
    }
    if (isUnDef(limit))
    {
        limit = 10;
    }
    if (isUnDef(hideLeftStrip))
    {
        var appGalleryList = byId("app-gallery-listing");
        if (appGalleryList == null)
        {
            hideLeftStrip = true;
        }
    }
    var url = "/public/ajax_searchApp?appName=" + appName + "&category=" + category + "&ownername=" + ownername + "&limit=" + limit + "&back=true";
    var reqOptions = {categoryId:category, hideLeftStrip:hideLeftStrip};
    getHtml(url, callbackFunctionName, reqOptions);
		return false;
}

function showSearchResults(results, reqOptions)
{
    var categoryId = reqOptions["categoryId"];
    var hideLeftStrip = reqOptions["hideLeftStrip"];

    zs_setInBC(results);
    if (!isUnDef(hideLeftStrip) && hideLeftStrip)
    {
        hideLeftCon();
    }
    else
    {
        zs_deSelectTabs();
    }
    if (!isUnDef(categoryId) && categoryId != -1)
    {
        var category = byId("category_" + categoryId);
        if (category != null)  category.className = "selected";
    }
}

function zs_navigateApp(form, pageNo)
{
    form.pageNo.value = pageNo;
    getHtmlForForm(form, "zs_postNavigateApp");
}

function zs_postNavigateApp(results)
{
    var zs_buffered_contentarea = byId("zs_buffered_contentarea");
    if (zs_buffered_contentarea != null)
    {
        zs_setInBC(results);
    }
    else
    {
        byId("body-container").innerHTML = results;
    }
    document.body.scrollTop = 0;
}

function hideSearchResults()
{
    var appGallerySR = byId("app-gallery-searchresults");
    var appGalleryList = byId("app-gallery-listing");
    if (appGalleryList != null)
    {
        appGallerySR.style.display = "none";
        appGalleryList.style.display = "block";
        var categoryEle = byId("category_galleryhome");
        var categories = categoryEle.parentNode.getElementsByTagName("li");
        for (var i = 0; i < categories.length; i++) {
            categories[i].className = "";
        }
        categoryEle.className = "selected";
    }
}

function zs_setInMC(result, displayMC, hideMsg)
{
    /*if (isUnDef(hideMsg) || hideMsg)
    {
      hideMessages();
    }
    else
    {
      clearMessages();
    }*/
    var zs_contentarea = byId('zs_maincontent');
    if(zs_contentarea == null)
    {
        return;
    }
    if(!isUnDef(result) && result != null)
    {
        zs_contentarea.innerHTML=result;
    }
    if (isUnDef(displayMC) || displayMC)
    {
        zs_contentarea.style.display='block';
        var bufferedCon = byId("zs_buffered_contentarea");
        if (bufferedCon != null)
        {
            bufferedCon.style.display='none';
        }
    }
}
function zs_backToGallery(deSelectTabs)
{
    var appgallery = byId("appgallery");
    if (appgallery == null)
    {
        location.href="/marketplace";
        return;
    }
    zs_clearBCAndShowMC(deSelectTabs);
}

function zc_clearBCAndShowMC()
{
     window.history.back();
}
function zs_clearBCAndShowMC(deSelectTabs)
{
    var bc = byId("zs_buffered_contentarea");
    if (bc == null)
    {
        window.history.back();
        return;
    }
    bc.innerHTML = "";
    zs_setInMC();
    showLeftCon();
    if (isUnDef(deSelectTabs) || deSelectTabs)
    {
        zs_deSelectTabs();
    }
    document.body.scrollTop = 0;
}
function zs_setInBC(result, displayBC, hideMsg)
{
    /*if (isUnDef(hideMsg) || hideMsg)
    {
      hideMessages();
    }
    else
    {
      clearMessages();
    }*/
    var zs_buffered_contentarea = byId("zs_buffered_contentarea");
    if(!isUnDef(result) && result != null)
    {
        zs_buffered_contentarea.innerHTML=result;
    }
    if (isUnDef(displayBC) || displayBC)
    {
        zs_buffered_contentarea.style.display='block';
        byId('zs_maincontent').style.display = 'none';
    }
}
function hideLeftCon()
{
    var left_column = byId("left-container");
    if (left_column != null)
    {
        left_column.style.display = "none";	
        //byId("hiddencontainer").style.display = "block";
    }
}
function showLeftCon()
{
    var left_column = byId("left-container");
    if (left_column != null)
    {
        left_column.style.display = "block";
        //byId("hiddencontainer").style.display = "none";
    }
}
function showReview()
{
    zs_switchInfoTabs(byId('popularityUsageBtn'));

    byId('reviewform').style.display='block';
    byId('postreviewBtn').focus();
    document.reviewform.reviewTitle.focus();
    if(byId('noreviews') != null)
    {
        byId('noreviews').style.display='none';
    }
}
function hideReview()
{
    byId('reviewform').style.display='none';
    if(byId('noreviews') != null)
    {
        byId('noreviews').style.display='block';
    }
}
function zs_addReview(formObj)
{
    var reviewtitle = formObj.reviewTitle.value;
    var reviewcomment = formObj.reviewComment.value;
    if (reviewtitle=="" && reviewcomment=="")
    {
        alert(i18Arr['zc.app.review.entertitleandcontent']);
        formObj.reviewTitle.focus();
    }
    else if (reviewtitle == "")
    {
        alert(i18Arr['zc.app.review.entertitle']);
        formObj.reviewTitle.focus();
    }
    else if (reviewcomment == "")
    {
        alert(i18Arr['zc.app.review.entercontent']);
        formObj.reviewComment.focus();
    }
    else
    {
        getHtmlForForm(formObj, "zs_postAddReview", formObj);
    }
    return false;
}

function zs_limitChars(ele, count, counter)
{
    var curLen = ele.value.length;
    if (curLen > count)
    {
        ele.value = ele.value.substring(0, count);
        curLen = count;
    }
    if (!isUnDef(counter))
    {
        var value = count - curLen;
        counter.innerHTML = value;
        counter.value = value;
    }
}

function zs_postAddReview(result, formObj)
{
    if (isSuccess(result))
    {
        showMessages(i18Arr['zc.app.review.successmsg']);
        if(byId('reviewformCon') == null)
        {
            byId('reviewform').style.display='none';
            dojo.event.topic.publish("/refreshreviews");
        }
        else{closeDialog();}
        formObj.reviewTitle.value="";
        formObj.reviewComment.value="";
        //clearMessages();
    }
}

function zs_deSelectTabs(ulId)
{
    if (isUnDef(ulId) || ulId == null)
    {
        ulId = "leftstrip-contents";
    }
    var contents = byId(ulId).getElementsByTagName("li");
    if (contents != null) 
    {
        for (var i = 0; i < contents.length; i++)
        {
            if (contents[i].className != "logocon" && contents[i].className != "dev-logocon" && contents[i].className != "header")
            {
                contents[i].className = "";
            }
        }
    }
}

function zs_simpleSwitchTabs(selectedTab, markAsSelected)
{
    var tabs = selectedTab.parentNode.getElementsByTagName("li");
    for (var i = 0; i < tabs.length; i++)
    {
        if (tabs[i].className != "logocon" && tabs[i].className != "dev-logocon" && tabs[i].className != "header")
        {
            tabs[i].className = "";
        }
        var refEle = byId(tabs[i].getAttribute("ref"));
        if (refEle != null)
        {
            refEle.style.display = "none";
        }
    }
    if (isUnDef(markAsSelected) || markAsSelected)
    {
        selectedTab.className = "selected";
    }
}

function zs_switchInfoTabs(selectedTab, markAsSelected, headerMsg, hideSortBy)
{
    var sortByCon = byId("sortByCon");
    if (sortByCon != null)
    {
        if (isUnDef(hideSortBy) || hideSortBy)
        {
            sortByCon.style.display = "none";
        }
        else
        {
            sortByCon.style.display = "block";
            byId("sortedBy").value = "By Recent";
        }
    }

    zs_simpleSwitchTabs(selectedTab, markAsSelected);
    if (!isUnDef(headerMsg))
    {
        byId("page-header").innerHTML = headerMsg;
        byId("app-buttons").style.display = "block";
    }
    var refEle = byId(selectedTab.getAttribute("ref"));
    if (refEle != null)
    {
        refEle.style.display = "block";
        if(selectedTab.getAttribute("ref")=='myMessagesCon')
        {
            var messages_frame = byId('home_messages_frame');
            if(messages_frame!=null && messages_frame.src=="about:blank")
            {
                messages_frame.src="/messages/index.jsp";
            }
        }
        if(selectedTab.getAttribute("ref")=='myBookmarksCon')
        {
            var appgallery = byId('appgallery');
            if(appgallery!=null)
            {
                appgallery.style.display="none";
            }
        }

    }
    dojo.event.topic.publish("/"+selectedTab.getAttribute("ref"));   

    if(byId("requirement") != null)
    {
        byId("requirement").style.display="none";
    }

    zs_setInMC();
    return false;
}

function zs_updateProfileFormCon(frm, ownername, fromDeveloperZone) 
{   
    var aboutMe = frm.aboutMe.value;
    var websiteurl = frm.websiteUrl.value;
    var wikiurl = frm.wikiUrl.value;
    if(aboutMe == '')
    {
        alert(i18Arr['zc.developer.profile.enteraboutyourself']);
        frm.aboutMe.focus();
        return false;
    }
    if(websiteurl != ''||websiteurl.length > 0)
    {
        if(!(websiteurl.indexOf("http://") == 0 || websiteurl.indexOf("https://") == 0))
        {
            alert(i18Arr['zc.developer.profile.entervalidwebsiteurl']);
            frm.websiteUrl.focus();
            return false;
        }
    }
    if(wikiurl != ''||wikiurl.length > 0)
    {
        if(!(wikiurl.indexOf("http://") == 0 || wikiurl.indexOf("https://") == 0))
        {
            alert(i18Arr['zc.developer.profile.entervalidwikiurl']);
            frm.wikiUrl.focus();
            return false;
        }
    }
    getHtmlForForm(frm, "zs_postUpdateProfileFormCon", fromDeveloperZone);
    return false;
}

function zs_postUpdateProfileFormCon(result, fromDeveloperZone)
{
    if (isSuccess(result))
    {
        var msg = i18Arr['zc.developer.profile.successmsg'];
        if (fromDeveloperZone)
        {
            var returnMsg=i18Arr['zc.developer.returntodz'];
            msg += " <a href='/developer'><b>"+returnMsg+"</b>.</a>";
        }
        showMessages(msg);
        byId("page-header").innerHTML = i18Arr['zc.developer.myprofile'];
        var myProfileCon = dojo.widget.byId('myProfileCon');
        myProfileCon.href =  ZS_CONTEXTPATH + "/home/showMyProfile?hideHeader=true";
        myProfileCon.refresh();
    }
}

function zs_viewAllReviews(ownername, callbackUrl)
{
    if (byId("morereviews").innerHTML.length < 1)
    {
        getHtml('/public/reviews?ownername=' + ownername + "&callbackUrl=" + callbackUrl, "postViewAllReviews");
    }
    else
    {
        postViewAllReviews();
    }
}
function postViewAllReviews(result)
{
    byId("morereviews").style.display = 'block';
    if (!isUnDef(result))
    {
        byId("morereviews").innerHTML = result;
    }
    byId("view-reviews").style.display = 'none';
    byId("back-reviews").style.display = 'block';
}

function zs_setRating(rating, ownername, callbackUrl, successMsg)
{
    var url = "/home/rateApp";
    var postParams = "rating="+rating+"&ownername="+ownername+"&callbackUrl="+callbackUrl;
    showRating(rating);
    ratingforapp = rating;
    getHtml(url, "zs_postSetRating", successMsg, false, null, false, false, true, postParams);
    return false;
}

function zs_postSetRating(result, successMsg)
{
    if (isSuccess(result))
    {
        var reqOptions = {FADE_INTERVAL:10};
        byId("ratemsg").style.display='block';
        if (!isUnDef(successMsg))
        {
            byId("ratemsg").innerHTML = successMsg;
            showMessages(successMsg);
            MCEffect.FadeOut('rateThisApp', reqOptions);
        }
        else
        {
            MCEffect.FadeOut('ratemsg', reqOptions);
        }
    }
}
function showRating(ratingValue)
{
    var roundValue = Math.round(ratingValue);
    var len = 0;
    len = ratingValue;

    for(var i = 1; i <= 5; i++)
    {
        if(i <= len)
        {
            byId("star"+i).src=ZS_CONTEXTPATH+"/images/star-gold.gif";
        }
        else if(roundValue > ratingValue)
        {
            byId("star"+roundValue).src=ZS_CONTEXTPATH+"/images/star-halfrated.gif";
            roundValue = 0;
        }
        else
        {
            byId("star"+i).src=ZS_CONTEXTPATH+"/images/star-notrated.gif";
        }
    }
}

function zs_hideComposeFormCon()
{
    toggleDivs('app-details','sendmsgcon');
    byId("page-header").innerHTML = sendmsg_userprofile;
    //zs_switchInfoTabs(byId("viewProfileBtn"), true, userDisplayName + '\'s Profile', true);
}
function zs_setUrlInBC(url,ulId, hideLeftStrip)
{
    var reqOptions = {ulId:ulId, hideLeftStrip:hideLeftStrip};
    getHtml(url, "zs_postSetUrlInBC", reqOptions);
}
function zs_postSetUrlInBC(result, reqOptions)
{
    var hideLeftStrip = reqOptions["hideLeftStrip"];
    zs_setInBC(result);
    if (!isUnDef(hideLeftStrip) && hideLeftStrip)
    {
        hideLeftCon();
    }
    else
    {
        zs_deSelectTabs(reqOptions["ulId"]);
    }
}
var postRequirementUrl = '/zohospace/application-request-tracker/form-embed/Application_Request/';
var postRequirementUrlParams = '&zc_SuccMsg=Requirement Posted Successfully&zc_BdrClr=white&zc_FtrClr=white&zc_LblFontClr=#666666';
function zs_showRequirmentFormCon(showdivId, hidedivId, hidedivlist)
{
    if(!isUnDef(hidedivId))
    {
    var element = byId(hidedivId);
    var tabs = element.getElementsByTagName("li");

    for (var i = 0; i < tabs.length; i++)
    {
        if (tabs[i].className != "logocon" && tabs[i].className != "dev-logocon" && tabs[i].className != "header")
        {
            tabs[i].className = "";
        }
        var refEle = byId(tabs[i].getAttribute("ref"));
        if (refEle != null)
        {
            refEle.style.display = "none";
        }
    }
    }
    byId(showdivId).style.display="block";
    var appgallery = byId("appgallery");
    if(appgallery != null)
    {
        appgallery.style.display="none"; 
    }
    else
    {
        byId("page-header").innerHTML = i18Arr['zc.developer.postyourrequirement'];
    }
    if(showdivId=='requirement')
    {
        var iframediv =document.getElementById('zohoform84')
              if(iframediv!=null && iframediv.src=="about:blank")
              {
                      iframediv.src  = postRequirementUrl + 'zc_NextUrl=/public/requirements&open=parent&zc_Header=false' + postRequirementUrlParams;
              }
    }
    if(!isUnDef(hidedivlist))
    {
        var divlist = hidedivlist.split(',');
        for(var i=0;i<divlist.length;i++)
        {
            byId(divlist[i]).style.display="none";
        }
    }   
    zs_setInMC();
}

function zc_showReqForm()
{
    byId("myappLink").style.display="none";
    byId("appspage").style.display="none";
    byId("reqLink").style.display="block";
    byId("backLink").style.display="block";
    byId("frmRequ").style.display="block";    
}

function zc_showHome()
{
    byId("reqLink").style.display="none";
    byId("backLink").style.display="none";
    byId("frmRequ").style.display="none";  
    byId("myappLink").style.display="block";
    byId("appspage").style.display="block";
}

function zs_validatePublishAppForm(frm)
{
    var appDescFckEditor = FCKeditorAPI.GetInstance('appDescField');
    if (appDescFckEditor.IsDirty())
    {
        frm.aboutPage.value = appDescFckEditor.GetXHTML(true);
    }
    var aboutPage = frm.aboutPage.value;
    //var isagreeTerms = frm.termsAndConditions.checked;
    if(aboutPage.length < 1)
    {
        alert(i18Arr['zc.app.publish.enterappdesc']);
        frm.aboutPage.focus();
        return false;
    }
    /*else if(!isagreeTerms)
    {
        alert(i18Arr['zc.app.publish.agreeterms']);
        return false;
    }*/
    return true;
}

function zs_showAppDetail(ownername, callbackUrl, otherParams, refererUrl, refererText)
{
    if (isUnDef(otherParams) || otherParams == null)
    {
        otherParams = "";
    }
    var url = "/public/showAppInfo?ownername=" + ownername + "&callbackUrl=" + callbackUrl;
    if (refererUrl != null)
    {
        if (refererText == null) refererText = "Back to Search Results";
        url += "&refererUrl=" + encodeURIComponent(refererUrl) + "&refererText=" + encodeURIComponent(refererText);
    }
    window.location.href = url + otherParams;
}

function zs_showNavigationTrail()
{
    var links = byId("navigation-links-top");
    if (links == null)
    {
        return;
    }

    var url = window.location.href;
    var refererUrl = zs_getParamValue("refererUrl", url);
    var refererText = zs_getParamValue("refererText", url);

    if (refererText != null || refererUrl != null)
    {
        if (refererUrl == null)
        {
            refererUrl = "javascript:window.history.back();";
        }
        if (refererText == null)
        {
            refererText = "Back to Search Results";
        }
        else if (refererText.indexOf("#") != -1)
        {
            refererText = refererText.substring(0, refererText.indexOf("#"));
        }
        refererText = decodeURIComponent(refererText);
        refererUrl = decodeURIComponent(refererUrl);

        var link = "<a href=\"" + refererUrl + "\">" + refererText + "</a>";
        links.innerHTML = link;
        links.style.display = "block";

        var bottom_links = byId("navigation-links-bottom");
        if (bottom_links != null)
        {
            bottom_links.innerHTML = links.innerHTML;
        }
    }
}

function zs_getParamValue(paramName, url)
{
    var paramValue = null;
    if (url.indexOf(paramName + "=") != -1)
    {
        var startIndex = url.indexOf(paramName + "=") + paramName.length + 1;
        var endIndex = url.length;
        if (url.indexOf("&", startIndex) != -1)
        {
            endIndex = url.indexOf("&", startIndex);
        }
        paramValue = url.substring(startIndex, endIndex);
    }
    return paramValue;
}

function zs_showInstallApp(ownername, callbackUrl)
{
    if(authenticate()) {
        zs_switchInfoTabs(byId('installAppBtn'));
    }
    else {
        var targetURL = '/public/showAppInfo?ownername=' + ownername + "&callbackUrl=" + callbackUrl + '&showInstallApp=true';
        showLoginDialog(targetURL, "installAppLoginDialog");
    }
    return false;
}

function zs_showAddConfirmation(ownername, callbackUrl)
{
    getHtml('/home/showInstallAppConfirmation?ownername=' + ownername + '&callbackUrl=' + callbackUrl, "zs_postShowAddConfirmation");
}
function zs_postShowAddConfirmation(result)
{
    showDialog(result, 'position=absolute, top=230, left=300, closeButton=no, modal=yes');
}

function zs_cloneInternalApp(ownername, callbackUrl, ispublic, withData, refererUrl, refererText, embed)
{
    if (isUnDef(ispublic) || ispublic == null)
    {
        var url = '/home/installApp';
        var postParams = "ownername=" + ownername + "&callbackUrl=" + callbackUrl;
        if (withData != null)
        {
            postParams += "&withData=" + withData;
        }
        if (isUnDef(embed) || embed == null)
        {
            embed = false;
        }
        importxml(url, "zs_postCloneInternalApp", embed, false, false, true, postParams);

        byId("installAppProgressBarCon").style.display = "block";
        return false;
    }
    var targetURL = '/public/showAppInfo?ownername=' + ownername + "&callbackUrl=" + callbackUrl + '&showInstallApp=true';
    if (!isUnDef(refererUrl) && refererUrl != null)
    {
        if (refererText == null) refererText = "Back to Search Results";
        targetURL += "&refererUrl=" + encodeURIComponent(refererUrl) + "&refererText=" + encodeURIComponent(refererText);
    }
    loginDialog(targetURL, "installAppLoginDialog");
}
function zs_postCloneInternalApp(xmlDoc, embed)
{
    var responseEle = xmlDoc.childNodes[0];
    var resultEle = responseEle.childNodes[0];
    if (resultEle.nodeName == "result")
    {
        if (resultEle.firstChild.nodeValue.toLowerCase() == "success")
        {
            var typeEle = responseEle.getElementsByTagName("type")[0];
            var type = typeEle.firstChild.nodeValue;
            if (type == "OPEN")
            {
                var id = typeEle.getAttribute("id");
                installApp_interval = window.setInterval("zs_checkForInstallationComplete('"+ id +"', " + embed + ")", 5000);
            }
            else
            {
                zs_showInstallAppSuccessMsg();
            }
            return;
        }
    }
    if (responseEle.getElementsByTagName("upgrade").length > 0)
    {
        byId('installAppErrorMsg').innerHTML = responseEle.getElementsByTagName("upgrade")[0].firstChild.nodeValue;
        byId('installAppErrorMsgCon').style.display = "block";
        byId('installAppProcessCon').style.display = "none";
    }
    else
    {
        showMessages(responseEle.getElementsByTagName("error")[0].firstChild.nodeValue);
        zs_switchInfoTabs(byId("appDetailsBtn"));
    }
}
function zs_showInstallAppSuccessMsg()
{
    byId('installAppProcessCon').style.display = "none";
    byId('installAppSuccessMsgCon').style.display = "block";
}
function zs_checkForInstallationComplete(id, embed)
{
    var url = "/home/isInstallationCompleted?id=" + id;
    importxml(url, "zs_postCheckForInstallationComplete", embed, false);
}
function zs_postCheckForInstallationComplete(xmlDoc, embed)
{
    var responseEle = xmlDoc.childNodes[0];
    var resultEle = responseEle.childNodes[0];
    if (resultEle.nodeName == "result")
    {
        var isCompleted = resultEle.firstChild.nodeValue;
        if (isCompleted == "true" && byId('installAppSuccessMsgCon').style.display != "block")
        {
            var newTaskId = responseEle.getElementsByTagName("newTaskId");
            if (newTaskId.length > 0)
            {
                window.clearInterval(installApp_interval);
                installApp_interval = window.setInterval("zs_checkForInstallationComplete('"+ newTaskId[0].firstChild.nodeValue +"', " + embed + ")", 5000);
            }
            else
            {
                var callbackUrl = responseEle.getElementsByTagName("callbackUrl")[0].firstChild.nodeValue;
                byId("accessAppLink").innerHTML  += callbackUrl + "/";
                if (embed)
                {
                    window.parent.location.href = byId("accessAppLink").innerHTML;
                    window.clearInterval(installApp_interval);
                    return;
                }
                window.clearInterval(installApp_interval);
                zs_showInstallAppSuccessMsg();
            }
        }
    }
    else
    {
        if (embed)
        {
            byId('installAppErrorMsg').innerHTML = responseEle.getElementsByTagName("error")[0].firstChild.nodeValue;
            byId('installAppErrorMsgCon').style.display = "block";
            byId('installAppErrorMsgCon').style.marginTop = "20px";
            byId('installAppProcessCon').style.display = "none";
            window.clearInterval(installApp_interval);
        }
        else
        {
            showMessages(responseEle.getElementsByTagName("error")[0].firstChild.nodeValue);
            window.clearInterval(installApp_interval);
            zs_switchInfoTabs(byId("appDetailsBtn"));
        }
    }
}
function zs_toggleHomeHelpCon(ele)
{
    var readyToUseAppsCon = byId("homeHelpCon");
    var url;
    if (readyToUseAppsCon.style.display == "none")
    {
        url = "/home/showHomeHelpApp";
    }
    else
    {
        url = "/home/hideHomeHelpApp";
    }
    getHtml(url, "zs_postToggleHomeHelpCon", ele);
}

function zs_postToggleHomeHelpCon(result, ele)
{
    if (isSuccess(result))
    {
        var readyToUseAppsCon = byId("homeHelpCon");
        if (readyToUseAppsCon.style.display == "none")
        {
            readyToUseAppsCon.style.display = "block";
            ele.innerHTML = "Hide Apps";
        }
        else
        {
            readyToUseAppsCon.style.display = "none";
            ele.innerHTML = "Show Apps";
        }
    }
}
function zs_showSortBy()
{
    showDialog(byId('sortByOptions').innerHTML, 'position=relative, srcElement=sortedBy, top=-3, left=0, closeButton=no, closeOnBodyClick=yes, width=90, ');
}
function zs_sortListing(sortBy, isAsc, value, ownername)
{
    byId("sortedBy").value = value;
    if (byId("public-apps") != null)
    {
        var publicAppsCon = dojo.widget.byId('public-apps');
        publicAppsCon.href =  ZS_CONTEXTPATH + "/public/publicApps?ownername=" + ownername + "&sortBy=" + sortBy + "&isAsc=" + isAsc;
        publicAppsCon.refresh();
    }
    else if (byId("sharedAppsCon").style.display == "block")
    {
        var sharedAppsCon = dojo.widget.byId('sharedAppsCon');
        sharedAppsCon.href =  ZS_CONTEXTPATH + "/home/myapps.jsp?sharedAppsOnly=true&sortBy=" + sortBy + "&isAsc=" + isAsc;
        sharedAppsCon.refresh();
    }
    else
    {
        var myAppsCon = dojo.widget.byId('myAppsCon');
        myAppsCon.href =  ZS_CONTEXTPATH + "/home/myapps.jsp?sortBy=" + sortBy + "&isAsc=" + isAsc;
        myAppsCon.refresh();
    }
    closeDialog();
}

function viewAllApps(category, ownername)
{
    var url = "";
    if(category == "popular")
    {
        url += "/public/popularApps?longerwidth=true";
    }
    if(category == "recent")
    {
        url += "/public/recentApps?longerwidth=true";
    }
    if(category == "allapps")
    {
        url += "/public/recentApps?longerwidth=true&allapps=true";
    }
    if (!isUnDef(ownername))
    {
        url += "&ownername=" + ownername;
    }
    getHtml(url, "postViewAllApps");
}

function postViewAllApps(result)
{
    zs_setInBC(result);
    document.body.scrollTop = 0;
}
function zs_refreshCon(conName, href, selectedTab)
{
    var con = dojo.widget.byId(conName);
    if (!isUnDef(href))
    {
        con.href =  href;
    }
    con.refresh();
    if (!isUnDef(selectedTab))
    {
        zs_simpleSwitchTabs(selectedTab, true);
    }
    return false;
}
function zs_refreshConHideId(conName,viewAll,selectedTab)
{
    href = byId('req_by').value;
    if(viewAll != true && viewAll != 'true')
    {
        href = href+"&viewAll=true";
    }
    else 
    {
        href = href;
    }
    var con = dojo.widget.byId(conName);
    if (!isUnDef(href))
    {
        con.href =  href;
    }
    con.refresh();
    if (!isUnDef(selectedTab))
    {
        zs_simpleSwitchTabs(selectedTab, true);
    }
    return false;
}
function zs_switchMessagesTab(href, pageNo, refresh)
{
    var myMessagesCon = dojo.widget.byId('myMessagesCon');
    if (typeof(href) != "undefined")
    {
        href =  "/messages/" + href;
        if (typeof(pageNo) != "undefined" && pageNo != null)
        {
            href += "?pageNo=" + pageNo;
        }
        myMessagesCon.href =  href;
    }
    if (typeof(refresh) == "undefined" || refresh)
    {
        myMessagesCon.refresh();
    }
    return false;
}
function zs_toggleMessageHoverStyle(msgId, isOut)
{
    var msg = document.getElementById("msgSubCon_" + msgId);
    if (msg.className.indexOf("messageselected") > 0)
    {
        return;
    }
    if (isOut)
    {
        msg.className = msg._old_className;
    }
    else
    {
        msg._old_className = msg.className;
        msg.className += " messagehover";
    }
}
function zs_decreaseUnReadMsgCount()
{
    var myMsgs = byId('myMessagesContent');
    var unreadCount = myMsgs.unreadCount;
    unreadCount--;
    zs_setUnReadMsgCount(unreadCount);
}
function zs_setUnReadMsgCount(unreadCount)
{
    var myMsgs = byId('myMessagesContent');
    if (unreadCount > 0)
    {
        myMsgs.innerHTML = myMsgs.getAttribute("origmsg") + " <b>(" + unreadCount + ")</b>";
        //myMsgs.style.fontWeight = "bold";
    }
    else
    {
        myMsgs.innerHTML = myMsgs.getAttribute("origmsg");
        myMsgs.style.fontWeight = "normal";
    }
    myMsgs.unreadCount = unreadCount;
}
function isUnreadMessage(msg)
{
    return (msg.className.indexOf("unreadmessage") >= 0);
}
function zs_toggleMessage(msgId)
{
    var selected = false;
    var msgCon = document.getElementById("messageCon_" + msgId);
    if (msgCon.style.display == "block")
    {
        msgCon.style.display = "none";
    }
    else
    {
        selected = true;
        msgCon.style.display = "block";
    }
    var msg = document.getElementById("msgSubCon_" + msgId);
    if (isUnreadMessage(msg))
    {
		getHtmlForForm(getForm("/messages/delete.jsp", new Array("status", "msgId"), new Array("Read", msgId)), "zs_markMessageAsRead", msgId, false);
        zs_decreaseUnReadMsgCount();
    }
    if (selected)
    {
        msg.className = 'readmessage messageselected';
        msg._old_className = msg.className;
    }
    else
    {
        msg.className = 'readmessage';
        msg._old_className = msg.className;
    }
}
function zs_markMessageAsRead(result, msgId)
{
    /*if (isSuccess(result))
    {
        //alert("SUCCESS");
    }
    var msg = document.getElementById("msgSubCon_" + msgId);
    msg.className = 'readmessage';*/
}
function zs_toggleComposeMessage(msgId)
{
    var msgCon = document.getElementById("composeMsg_" + msgId);
    var replyBtns = document.getElementById("replyBtnsCon_" + msgId);
    if (msgCon.style.display == "block")
    {
        msgCon.style.display = "none";
        replyBtns.style.display = "block";
    }
    else
    {
        msgCon.style.display = "block";
        replyBtns.style.display = "none";
    }
}
function zs_deleteMessage(form, id, fromTab, pageNo, noOfRecords, hasNextPage)
{
    document.getElementById("deleteMsg_" + id).checked = true;
    zs_deleteMessages(form, id, fromTab, pageNo, noOfRecords, hasNextPage);
}
function zs_deleteMessages(form, id, fromTab, pageNo, noOfRecords, hasNextPage)
{
	var keys = new Array("status");
	var values = new Array(form.status.value);

    var dRdsCnt = 0;
    var proceedDelete = false;
    if (!isUnDef(id) && id != null)
    {
        dRdsCnt++;
        proceedDelete = true;
        var msg = document.getElementById("msgSubCon_" + id);
        if (isUnreadMessage(msg))
        {
            zs_decreaseUnReadMsgCount();
        }
		values[keys.length] = document.getElementById("deleteMsg_" + id).value;
		keys[keys.length] = "msgId";
    }
    else
    {
        var eles = form.msgId;
        if (isUnDef(eles.length))
        {
            eles = new Array(form.msgId);
        }
        for (var i = 0; i < eles.length; i++)
        {
            if (eles[i].checked)
            {
                dRdsCnt++;
                proceedDelete = true;
                var msg = document.getElementById("msgSubCon_" + eles[i].value);
                if (isUnreadMessage(msg))
                {
                    zs_decreaseUnReadMsgCount();
                }
				values[keys.length] = eles[i].value;
				keys[keys.length] = "msgId";
            }
        }
    }
    if (proceedDelete)
    {
        if (noOfRecords == dRdsCnt)
        {
            if (isUnDef(hasNextPage) || hasNextPage == null || !hasNextPage)
            {
                pageNo--;
            }
        }
        if(isUnDef(fromTab))
        {
            fromTab = "Inbox";
        }
        if (isUnDef(pageNo) || pageNo == null || pageNo < 1)
        {
           pageNo = 1;
        }
        var reqOptions = {ID:id, FROMTAB:fromTab, PAGENO:pageNo};
		getHtmlForForm(getForm(form.action, keys, values), "zs_postDeleteMessages", reqOptions);
    }
}
function zs_postDeleteMessages(result, reqOptions)
{
    var fromTab = reqOptions["FROMTAB"];
    var id = reqOptions["ID"];
    var pageNo = reqOptions["PAGENO"];
    if (isSuccess(result))
    {
        if(fromTab == "AdminMessages")
        {
            zs_switchMessagesTab('adminmessages.jsp', pageNo);
        }
        else
        {
            zs_switchMessagesTab('index.jsp', pageNo);
        }
    }
    else
    {
        alert(i18Arr['zc.messages.deletemsgfailure']);
        if (typeof(id) != "undefined" && id != "")
        {
            document.getElementById("deleteMsg_" + id).checked = false;
            zs_toggleMessage(id);
        }
    }
}
function zs_sendMessageForForm(form, composeOnly, isDialog)
{
    var reqOptions = {ID:"", COMPOSEONLY:composeOnly, ISDIALOG:isDialog};
    getHtmlForForm(form, "zs_postSendMessage", reqOptions);
    return false;
}
function zs_sendMessage(to, subject, message, id)
{
    var reqOptions = {ID:id};
	var params = new Array("addOnly", "to", "subject", "message");
	var values = new Array("true", to, subject, message);
	var hipele = document.getElementById("hipimage_" + id);
	var hipparams = hipele.getElementsByTagName("input");
	if (hipparams.length > 0)
	{
		values[params.length] = hipparams[0].value;
		params[params.length] = hipparams[0].name;
	}
	getHtmlForForm(getForm("/messages/sendMessage.jsp", params, values), "zs_postSendMessage", reqOptions);
}
function zs_postSendMessage(result, reqOptions)
{
    if (isSuccess(result))
    {
        showMessages(i18Arr['zc.messages.successmessage']);
        var id = reqOptions["ID"];
        if (typeof(id) != "undefined" && id != "")
        {
            zs_switchMessagesTab();
        }
        else
        {
            var composeOnly = reqOptions["COMPOSEONLY"];
            if (typeof(composeOnly) != "undefined" && composeOnly)
            {
                var isDialog = reqOptions["ISDIALOG"];
                if (typeof(isDialog) != "undefined" && isDialog)
                {
                    closeDialog();
                }
                else
                {
                    zs_hideComposeFormCon();
                }
            }
            else
            {
                zs_switchMessagesTab();
            }
        }
    }
    else
    {
        if (result.indexOf("HIP") > 0)
        {
            var id = reqOptions["ID"];
            if (typeof(id) != "undefined" && id != "")
            {
                embedHIPImage(result, "hipimage_" + id);
            }
            else
            {
                embedHIPImage(result);
            }
        }
        else
        {
            showMessages(i18Arr['zc.messages.sendingfailure']);
        }
    }
}

function showUploadLogoDialog(callbackUrl)
{
   var url = ZS_CONTEXTPATH+"/jsp/includes/uploadLogo.jsp?callbackUrl="+callbackUrl; 
   getHtml(url,"zs_postShowUploadLogoDialog");
}

function zs_postShowUploadLogoDialog(result)
{
    showDialog(result,'position=absolute, top=230, left=300, closeButton=no, modal=yes');
}

function showUploadHelpDocDialog(callbackUrl, screenshot)
{
    if (isUnDef(screenshot))
    {
        screenshot = false;
    }
    var url = ZS_CONTEXTPATH+"/jsp/includes/uploadHelpDoc.jsp?callbackUrl=" + callbackUrl + "&screenshot=" + screenshot;
    getHtml(url,"zs_postShowUploadHelpDocDialog");
}

function zs_postShowUploadHelpDocDialog(result)
{
    showDialog(result,'position=absolute, top=230, left=300, closeButton=no, modal=yes');
}

function zs_DeleteHelpDoc(ownername, docId)	
{
   var isDeleteHelpDoc = confirm(i18Arr['zc.developer.removedoc']);
   if(isDeleteHelpDoc == true)
   {
       var url = "/home/ajax_deleteHelpDocApp";
       var postParams = "ownername="+ownername+"&docId="+docId;
       var reqOptions = {DOCID:docId};
       getHtml(url,"zs_postDeleteHelpDocApp",reqOptions,false,null,false,false,true,postParams);
   }
}

function zs_postDeleteHelpDocApp(result,reqOptions)
{
    if (isSuccess(result))
    {
        var docElement = byId(reqOptions["DOCID"]);
        docElement.parentNode.removeChild(docElement);
        showMessages(i18Arr['zc.app.helpdocdeletemsg']);
    }
}

function zs_submitUrlAndRefershCon(url, container, successMsg, failureMsg)
{
    var reqOptions = {container:container, successMsg:successMsg, failureMsg:failureMsg};
    var actionUrl = url.substring(0,url.indexOf("?"));
    var postParams = url.substring(url.indexOf("?")+1,url.length);
    getHtml(actionUrl, "zs_postSubmitUrlAndRefershCon", reqOptions,false,null,false,false,true,postParams);
}

function zs_postSubmitUrlAndRefershCon(result, reqOptions)
{
    var container = reqOptions["container"];
    var successMsg = reqOptions["successMsg"];
    var failureMsg = reqOptions["failureMsg"];
    if (isSuccess(result))
    {
        if (!isUnDef(successMsg))
        {
            showMessages(successMsg);
        }
        if (!isUnDef(container))
        {
            zs_refreshCon(container);
        }
    }
    else if (!isUnDef(failureMsg))
    {
        showMessages(failureMsg);
    }
}

function zs_BookmarkApp(appName, appUrl)
{
    var url = "/messages/bookmarkapp.jsp?appname="+appName+"&appdesc=&appurl="+encodeURIComponent(appUrl);
    getHtml(url, "zs_postBookmarkApp");
}

function zs_postBookmarkApp(result)
{
    if (isSuccess(result))
    {
        showMessages(i18Arr['zc.app.bookmarksuccessmsg']);
    }
}

function zs_deleteBookmarks(id)
{
	getHtmlForForm(getForm("/messages/bookmarkdelete.jsp", new Array("bookmarkId"), new Array(id + "")), "zs_postDeleteBookmarks", id);
}

function zs_postDeleteBookmarks(result, id)
{
    if (isSuccess(result))
    {
        dojo.event.topic.publish("/myBookmarksCon");
        return false;
    }
    else
    {
        alert(i18Arr['zc.app.deletebookmarkfailuremsg']);
    }
}
function zs_showCreateApp()
{
    var zs_buffered_contentarea = byId("zs_buffered_contentarea");
    var targetURL = '/create/' + workspaceowner;
    if (!authenticate()) {
        var sid = 'app-buttons';
        if (byId(sid) == null) {
            sid = 'tabstrip';
        }
        showLoginDialog(targetURL, sid);
        return false;
    }
    if(zs_buffered_contentarea != null) {
        getHtml('/home/ajax_createApp?wsOwner=' + workspaceowner, "zs_postShowCreateApp");
    }
    else {
        window.location.href=targetURL;
    }
    return false;
}
var loadedJSFiles = new Array();
function loadJS(file)
{
    if (loadedJSFiles[file])
        return;	
    try {
        var script=document.createElement('script');
        script.type = "text/javascript";
        script.src = file;
        document.getElementsByTagName("head").item(0).appendChild(script);
        loadedJSFiles[file] = true;
    }catch(e){
        document.write('<script language="javascript" type="text/javascript" src="' + file + '"></script>');
    }
}
function zs_postShowCreateApp(result)
{
    if (result.indexOf("errormsg=") == 0)
    {
        showMessages(result.substring(9));
    }
    else
    {
    	if(usecompression)
    	{
            loadJS("/appcreator/js/jscreateapp.js");
        }
        else
        {    
            loadJS("/platform/js/createapp.js");
            loadJS("/platform/js/createnewform.js");
            loadJS("/appcreator/js/delugeeditor.js");
        }
        loadJS("/appcreator/edit_area/edit_area_loader.js");
        zs_setInBC(result);
        hideLeftCon();
    }
}

function zs_removeFromGallery(callbackUrl)
{
    var isRemoveFromGallery = confirm(i18Arr['zc.app.removegalleryconfirmmsg']);
    if (isRemoveFromGallery == true)
    {
        var url = "/home/removeAppFromGallery";
        var postParams = "callbackUrl="+callbackUrl;
        getHtml(url, "zs_postRemoveFromGallery", null, false, null, false, false, true, postParams);
    }
}

function zs_postRemoveFromGallery(result)
{
    if(isSuccess(result))
    {
        var successmsg = result.substring(result.indexOf("<successmsg>"), result.indexOf("</successmsg>"));
        showMessages(successmsg);
        dojo.event.topic.publish("/published-apps");
        dojo.event.topic.publish("/unpublished-apps");
    }
    else
    {
        var failuremsg = result.substring(result.indexOf("<failuremsg>"), result.indexOf("</failuremsg>"));
        showMessages(failuremsg);
    }
}

function zs_showMsgsUnreadCount(adminUnreadMsgs, inboxUnreadMsgs)
{
    getHtml(adminUnreadMsgs, "zs_postShowMsgsUnreadCount", inboxUnreadMsgs, false);
}

function zs_postShowMsgsUnreadCount(result, inboxUnreadMsgs)
{
    window.eval("var msgs=" + result);
    var compose = msgs["Compose"];
    var length = compose.length;

    getHtml(inboxUnreadMsgs, "zs_postShowInboxMsgsUnreadCount", length, false);
}

function zs_postShowInboxMsgsUnreadCount(result, unreadmsglength)
{  
    window.eval("var inboxmsgs=" + result);
    var inboxunreadmsgs = inboxmsgs["Compose"];
    var inboxunreadmsgslength = inboxunreadmsgs.length;
    if (inboxunreadmsgslength <= 0 && unreadmsglength > 0)
    {
       zs_switchMessagesTab('adminmessages.jsp', null, false);
    }
	var length = inboxunreadmsgslength + unreadmsglength;
    var myMsgs = byId('myMessagesContent');
    if (myMsgs != null)
    {
        myMsgs.unreadCount = length;
    }
    if (length > 0)
    {
        if (myMsgs != null)
        {
            myMsgs.innerHTML += " <b>(" + length + ")</b>";
        }
        else
        {
            var msg = "You have <a href='/messages'><b>" + length + " unread</b></a> ";
            if (length == 1)
            {
                msg += "message.";
            }
            else
            {
                msg += "messages.";
            }
            showMessages(msg);
        }
    }
}

function zs_sentInvitation(frm)
{
    var toAddresses = frm.to.value;
    if(toAddresses.length < 1)
    {
        alert(i18Arr['zc.app.pleaseentermailids']);
        frm.toAddresses.focus();
        return false;
    }
    else
    {
        var toAddressesList = toAddresses.split(",");
        for (var i = 0; i < toAddressesList.length; i++)
        {
            var toAddress = toAddressesList[i];
            if (!toAddress.match(".+@.+\\.[a-z]+"))
            {
                alert(i18Arr['zc.app.invaildemailidspecified']);
                frm.toAddresses.focus();
                return false;
            }
        }
        getHtmlForForm(frm, "zs_postSendInivitation", frm);
    }
    return false;
}
function embedHIPImage(result, hipimage)
{
    if (isUnDef(hipimage))
    {
        hipimage = "hipimage";
    }
    var hip = byId(hipimage);
    hip.innerHTML = result;
    
    var hipparam = hip.getElementsByTagName("hipparam")[0].innerHTML;
    var content =  replaceParams(i18Arr['zc.message.imagecode'], new Array());
    content += "<span><img src='/platform/showcaptcha?digest=" + hipparam + "' align='absmiddle' height='75' width='160'/></span>";
    content += "<input id='hiptxt' type='text' class='formtextfield' name='" + hipparam + "' style='width:120px;'>";
    
    hip.innerHTML = content;
    byId("hiptxt").focus();
}
function zs_postSendInivitation(result, frm)
{
    if (result.indexOf("HIP") > 0)
    {
        embedHIPImage(result);
    }
    else
    {
        showMessages(i18Arr['zc.home.thanksusermsg']);
        byId("hipimage").innerHTML = "";
        frm.reset();
    }
}

function zs_inviteFriends(frm)
{
    var toAddresses = frm.toAddresses.value;
    var message = frm.message.value;
    
    if(toAddresses.length < 1)
    {
        alert(i18Arr['zc.app.pleaseentermailids']);
        frm.toAddresses.focus();
        return false;
    }
    else
    {
        var toAddressesList = toAddresses.split(",");
        for (var i = 0; i < toAddressesList.length; i++)
        {
            var toAddress = toAddressesList[i];
            if (!toAddress.match(".+@.+\\.[a-z]+"))
            {
                alert(i18Arr['zc.app.invaildemailidspecified']);
                frm.toAddresses.focus();
                return false;
            }
        }
        getHtmlForForm(frm,"zs_postInviteFriends",frm);
    }
    return false;
}
function zs_postInviteFriends(result,frm)
{
    if (isSuccess(result))
    {
        showMessages(i18Arr['zc.app.invitesuccessmsg']);
        byId("hipimage").innerHTML = "";
        frm.reset();
        toggleDivs('app-details', 'invite-friends', byId('appDetailsBtn'));
    }
    else if (result.indexOf("HIP") > 0)
    {
        embedHIPImage(result);
    }
}

function cancelPublish(page,appOwner)
{
    if(page == 'home')
    {
        window.location.href='/home/index';
    }
    else if(page == 'developerzone')
    {
        window.location.href='/developer';
    }
    else if(page == 'profile')
    {
        window.location.href='/'+appOwner;
    }
    else
    {
        hideDiv('publish-app');
        zs_switchInfoTabs(byId('appDetailsBtn'))
    }
}

function zs_checkForUploadPhotoRefresh(iamServer, zuid)
{
    if (uploadPhotoWindow.closed)
    {
        window.clearInterval(uploadPhoto_interval);
        byId("user_" + zuid).src = iamServer + "/file?"+(new Date()).getTime();;
    }
}

function zs_showUploadPhoto(iamServer, zuid)
{
    uploadPhotoWindow = window.open(iamServer + '/ui/user/photo.jsp?type=user&ID=' + zuid,'_photo','width=580,height=300,screenX=282,screenY=249');
    uploadPhoto_interval = window.setInterval("zs_checkForUploadPhotoRefresh('"+ iamServer +"', '"+ zuid +"')", 1000);
}

function toggleApps(dojoDivId, url, nolimit)
{
    var appsCon = dojo.widget.byId(dojoDivId);
    if (nolimit != 'true' && nolimit != true)
    {
        url += "&nolimit=true";
    }
    appsCon.href =  ZS_CONTEXTPATH + url;
    appsCon.refresh();
}
function toggleSearchStrip(showSearchBox, fromWebsite)
{
    if (isUnDef(showSearchBox))
    {
        showSearchBox = false;
    }

    var searchBtn = byId("searchBtn");
    var searchStrip = byId("searchStrip");
    if (!showSearchBox && searchStrip.style.display == "block")
    {
        searchStrip.style.display = "none";
        searchBtn.className = "";
    }
    else
    {
        searchStrip.style.display = "block";
        searchBtn.className = "selected";
        if(!fromWebsite)
        {
            byId("searchStrip").getElementsByTagName("input")[0].focus();
        }
        else
        {
            byId("searchTextfield").focus();
        }
    }
}

function resetProjectReqsPagination(curLength)
{
    next_requirementPageIndex = requirementStartIndex + requirementLimit;
    prev_requirementPageIndex = requirementStartIndex - requirementLimit;
    byId("requirement_curLimit").innerHTML = requirementStartIndex + curLength - 1;
    byId("requirement_curStartIndex").innerHTML = requirementStartIndex;
    if (curLength < requirementLimit)
    {
        hideDiv("requirement_nextLink", 'inline');
    }
    else
    {
        showDiv("requirement_nextLink", 'inline');
    }
    if (requirementStartIndex == 1)
    {
        hideDiv("requirement_prevLink", 'inline');
    }
    else
    {
        showDiv("requirement_prevLink", 'inline');
    }
}

function showProjectRequirements(zc_ownername, apiKey, limit, startIndex, resetPagination)
{
    if (isUnDef(limit))
    {
        limit = 0;
    }
    if (isUnDef(startIndex))
    {
        startIndex = 1;
    }
    if (!isUnDef(resetPagination) && resetPagination)
    {
        requirementStartIndex = startIndex;
    }
    getHtml('/api/json/application-request-tracker/view/Application_Request_View/zc_ownername=' + zc_ownername + '&apikey=' + apiKey + '&raw=true&limit='+limit+'&startindex='+startIndex, 'post_showProjectRequirements', resetPagination);
}

function post_showProjectRequirements(output, resetPagination)
{
    var container = byId('requirementsViewContent');
    var error = byId('requirementsViewError');
    var norequirements = byId('noRequirementsView');
    container.style.display = 'block';
    error.style.display = 'none';
    norequirements.style.display = 'none';
    try
    {
        window.eval("var requirements=" + output);
        var requests = requirements["Application_Request"];
        var length = requests.length;
        if (length > 0)
        {
            if (!isUnDef(resetPagination) && resetPagination)
            {
                resetProjectReqsPagination(length);
            }

            var template = byId('requirementViewTemplate').innerHTML;
            var content = "";

            for (var i = 0; i < length; i++)
            {
                var requirement = template;
                var timespan = requests[i]["Time_Span"];
                var votes = requests[i]["Votes"];
                var desc = requests[i]["Description"];
                var addedby = requests[i]["ZohoName"];
                var requestid = requests[i]["REQUEST_ID"];

                if (addedby=='Public')
                {
                    addedby=requests[i]["Email_Id_to_Communicate"];
                }

                var addedtime = requests[i]["Added_Time"];
                var docs = requests[i]["Upload_Supporting_Docs"];
                var category = requests[i]["Category"];
                var title = requests[i]["Title"];
                var emailId = requests[i]["Email_Id_to_Communicate"];
                var budget = requests[i]["Budget"];
                var forumTopicId=requests[i]["ForumTopicId"];//No I18N
                var titleaslink="";
                var hidetitle="";
                if(!isUnDef(forumTopicId) && forumTopicId != '')
                {
                    titleaslink = "style='display:block;'";//No I18N
                    hidetitle = "style='display:none;'";//No I18N
                }
                else
                {
                    titleaslink = "style='display:none;'";//No I18N
                    hidetitle = "style='display:block;'";//No I18N
                }


                title = title.replace("<","&lt;");
                title = title.replace(">","&gt;");
                desc = desc.replace("<","&lt;");
                desc = desc.replace(">","&gt;");
                timespan = timespan.replace("<","&lt;");
                timespan = timespan.replace(">","&gt;");
                budget = budget.replace("<","&lt;");
                budget = budget.replace(">","&gt;");

                if (addedtime.indexOf(" ") > 0) addedtime = addedtime.substring(0, addedtime.indexOf(" "));
                
                if(docs.indexOf("filepath=/&") < 0 && docs.indexOf("appLinkName") < 0)
                {
                    docs = docs.concat("&appLinkName=application-request-tracker&viewLinkName=Application_Request_View");//No I18N
                }

                requirement = requirement.replace(/{title}/g,title);
                requirement = requirement.replace(/{addedby}/g,addedby);
                requirement = requirement.replace(/{category}/g,category);
                requirement = requirement.replace(/{desc}/g,desc);
                requirement = requirement.replace(/{timespan}/g,timespan);
                requirement = requirement.replace(/{addedtime}/g,addedtime);
                requirement = requirement.replace(/{docs}/g,docs);
                requirement = requirement.replace(/{budget}/g,budget);
                if (docs.indexOf("filepath=/&") > 0)
                {
                    requirement = requirement.replace(/{hidedocs}/g," style='display:none'");
                }
                if(budget.length == 0 || budget == 'undefined')
                {
                    requirement = requirement.replace(/{hidebudget}/g," style='display:none'");
                }
                requirement = requirement.replace(/{requestid}/g,requestid);
                requirement = requirement.replace(/{forumTopicId}/g,forumTopicId);
                requirement = requirement.replace(/{titleaslink}/g,titleaslink);
                requirement = requirement.replace(/{hidetitle}/g,hidetitle);
                content += requirement;
            }
            container.innerHTML = content;
            return;
        }
        else
        {
            norequirements.style.display = 'block';
            resetProjectReqsPagination(1);
        }
    }
    catch (e)
    {
        error.style.display = 'block';
    }
    container.style.display = 'none';
}

function respondReq(requestid,sid,title,category)
{
    if(authenticate())
    {
        if(!isUnDef(requestid) && requestid != "")
        {
            showResponseForm(requestid,title,category);
        }
        else
        {
            showResponseForm(sid,null,null);
        }
    }
    else
    {
        getHtmlForForm(getForm("/platform/login.jsp", new Array('serviceurl'), new Array('/public/requirements'),"Get"),"zs_showPostRequirementInfo");//No I18N
    }
}

function showResponseForm(id,title,category)
{
    if(title == null && category == null)
    {
        var url = "/home/respond?id="+id;//No I18N
        window.open(url, "_blank", "width=508,height=380");
        return;
    }
    else
    {
        var url = ZS_CONTEXTPATH+"/marketplace/sendResponse?forumTopicId="+id+"&title="+title+"&forumCategory="+category;//No I18N
        getHtml(url,"zs_showResponseForm");//No I18N
    }
}
function zs_showResponseForm(result)
{
    showDialog(result,'position=absolute, top=100, left=260, closeButton=no, modal=yes');//No I18N
}

function showSendMessageAsDialog(to, header)
{
    if (isUnDef(header))
    {
        header = i18Arr['zc.developer.requirements.respondheader'];
    }
    var url = "/messages/compose.jsp?to=" + to + "&composeonly=true&isDialog=true&header=" + header;
    getHtml(url, "post_showSendMessageAsDialog");
}

function post_showSendMessageAsDialog(result)
{
    showDialog(result, 'position=relative, width=420, top=-3, height=250, closeButton=no, modal=yes');
}

function zs_openUrlInNewTab(url)
{
    window.open(url, "_blank");
}

function zs_accessApp()
{ 
    var url = byId("accessAppLink").innerHTML;
    window.open(url, "_blank");
}

function zs_goBack(switchInfoBtn)
{
    if (!isUnDef(switchInfoBtn) && switchInfoBtn.length > 0)
    {
        zs_switchInfoTabs(byId(switchInfoBtn));
        return;
    }
    var url = window.location.href;
    var refererUrl = zs_getParamValue("refererUrl", url);

    if (refererUrl != null)
    {
        refererUrl = decodeURIComponent(refererUrl);
        window.location = refererUrl;
    }
    else
    {
        window.history.back();
    }
    return false;
}
function zs_toggleSelectAll(eleChecked, eles)
{
    if (isUnDef(eles.length))
    {
        eles.checked = eleChecked;
        return;
    }
    for (var i = 0; i < eles.length; i++)
    {
        eles[i].checked = eleChecked;
    }
}

function zs_checkForPatch(ownername, callbackUrl, msg)
{
    importxml("/home/isPatchAvailable?ownername=" + ownername + "&callbackUrl=" + callbackUrl, "zs_postCheckForPatch", msg);
}
function zs_postCheckForPatch(xmlDoc, msg)
{
    var responseEle = xmlDoc.childNodes[0];
    var resultEle = responseEle.childNodes[0];
    if (resultEle.nodeName == "result")
    {
        var value = resultEle.firstChild.nodeValue;
        if (value == "true")
        {
            setTimeout("showNotification(\"" + msg + "\")", 1000);
        }
    }
}

function zs_applyPatch(callbackUrl)
{
    var url = "/home/copyData?callbackUrl=" + callbackUrl;
    importxml(url, "zs_postapplyPatch", null, false);
}
function zs_postapplyPatch(xmlDoc)
{
    var responseEle = xmlDoc.childNodes[0];
    var resultEle = responseEle.childNodes[0];
    if (resultEle.nodeName == "result")
    {
        if (resultEle.firstChild.nodeValue.toLowerCase() == "success")
        {
            var idEle = responseEle.getElementsByTagName("id")[0];
            var id = idEle.firstChild.nodeValue;
            applyPatch_interval = window.setInterval("zs_checkForApplyPatchComplete('"+ id +"')", 5000);
            return;
        }
    }
    else
    {
        byId('applyPatchErrorMsg').innerHTML = responseEle.getElementsByTagName("error")[0].firstChild.nodeValue;
        byId('applyPatchErrorMsgCon').style.display = "block";
        byId('applyPatchProcessCon').style.display = "none";
    }
}
function zs_checkForApplyPatchComplete(id)
{
    var url = "/home/isCopyDataCompleted?id=" + id;
    importxml(url, "zs_postCheckForApplyPatchComplete", null, false);
}
function zs_postCheckForApplyPatchComplete(xmlDoc)
{
    var responseEle = xmlDoc.childNodes[0];
    var resultEle = responseEle.childNodes[0];
    if (resultEle.nodeName == "result")
    {
        var isCompleted = resultEle.firstChild.nodeValue;
        if (isCompleted == "true" && byId('applyPatchSuccessMsgCon').style.display != "block")
        {
            window.clearInterval(applyPatch_interval);
            byId('applyPatchProcessCon').style.display = "none";
            byId('applyPatchNoPatchMsgCon').style.display = "none";
            byId('applyPatchSuccessMsgCon').style.display = "block";
        }
        else if (isCompleted == "false")
        {
            window.clearInterval(applyPatch_interval);
            byId('applyPatchProcessCon').style.display = "none";
            byId('applyPatchSuccessMsgCon').style.display = "none";
            byId('applyPatchNoPatchMsgCon').style.display = "block";
        }
    }
    else
    {
        byId('applyPatchErrorMsg').innerHTML = responseEle.getElementsByTagName("error")[0].firstChild.nodeValue;
        byId('applyPatchErrorMsgCon').style.display = "block";
        byId('applyPatchProcessCon').style.display = "none";
        window.clearInterval(applyPatch_interval);
    }
}
function zs_privatePublish(frm)
{
    var workspaceActiveUsers = frm.myWorkspaceActiveUsers;
    var workspaceActiveUsersLength = workspaceActiveUsers.options.length;
    var isSelectedUsers = 0;
    for (var i = 0; i < workspaceActiveUsersLength; i++)
    {
        var workspaceUser = workspaceActiveUsers.options[i];
        if(workspaceUser.selected)
        {
            isSelectedUsers++;
        }
    }
    if(isSelectedUsers <= 0 )
    {
        alert(i18Arr['zc.app.publishprivately.selectanyusers']);
        return false;
    }
    getHtmlForForm(frm,"zs_postPrivatePublish",frm);
    return false;
}
function zs_postPrivatePublish(result,frm)
{
    if (isSuccess(result))
    {
	showHideField("publishform");//No I18N
	showHideField("publishsuccessmsg");//No I18N
	document.getElementById("newUserField").style.display="none";
        var workspaceActiveUsers = frm.myWorkspaceActiveUsers;
        for (var i = 0; i < workspaceActiveUsers.options.length; i++)
        {
            workspaceActiveUsers.options[i].selected=false;
        }
    }
}

function cancelPrivatePublish(page,appOwner)
{
    if(page == 'developerzone')
    {
        window.location.href='/developer';
    }
    else if(page == 'profile')
    {
        window.location.href='/'+appOwner;
    }
    else
    {
        hideDiv('publish-app');
        zs_switchInfoTabs(byId('appDetailsBtn'))
    }
}
/* Scroll Slide for Help Documents in App Info Page*/
var totalSlides;
var contentSlides;
var currentSlide = 1;
var noOfSlidesMoves = 3;// no of slides has to be moved on press of the slide button
var visibleSlides = 3;// no of slides will be visible at the client
var slideSpeed = 1500;//time in milliscns
var totalSlides = 0;
var totalWidth = 0;
var imglen =0;
var speed = 40;
var next = 0;
function imgLength(user)
{
    if(!browser_ie)
    {
        if(user == "true")
        {   
            document.getElementById("slide-holder").style.marginLeft="0%";
            document.getElementById("slide-area").style.width="521px";
            document.getElementById("slide-area").style.marginLeft="3.6%";
            document.getElementById("slide-area").style.marginTop="-28%";
        }
        else
        {
            document.getElementById("slide-holder").style.marginLeft="-7.5%";
        }
    }
    else if(browser_ie)
    {
        if(user == "true")
        {
            document.getElementById("slide-holder").style.marginLeft="0.4%";
        }
    }
    var a = document.getElementsByTagName("li");
    var i = 0;
    for(i = 0;i < a.length;i++)
    {
        var b = a.item(i);
        if(b.getAttribute("name") == "slides")
        {
            imglen = imglen+1;
            totalSlides = totalSlides+1;
            if(b.getAttribute("id") != null)
            {
                var cli_wid = eval("document.getElementById("+imglen+").clientWidth");
            }
            else
            {
                var cli_wid=document.getElementById(1).clientWidth;
            }
            if(browser_ie)
            {   
                totalWidth = totalWidth+cli_wid+150;
            }
            else
            {
                totalWidth = totalWidth+cli_wid;
            }
        } 
    }
    noOfSlidesMoves = (totalSlides-visibleSlides);
    if(noOfSlidesMoves > visibleSlides)
    {
        noOfSlidesMoves = visibleSlides;  
    }
    if(totalSlides <= visibleSlides)
    {
        document.getElementById("slideshow-next_dis").style.display="block";
        document.getElementById("slideshow-previous_dis").style.display="block";
        document.getElementById("slideshow-next").style.display="none";
        document.getElementById("slideshow-previous").style.display="none";
    }
    totalWidth=totalWidth+40;
    if(browser_ie)
    {
        totalWidth=totalWidth+300;
    }
    document.getElementById("slide-holder").style.width=totalWidth;
}
var moves="";
function moveLeft()
{
    moves = "prev";
    currentSlide = currentSlide - noOfSlidesMoves;
    updateContentHolder(moves);
    updateButtons();
}
function moveRight()
{
    moves = "next";
    if(currentSlide < 1)
    {
        currentSlide = 1;
    }
    currentSlide = currentSlide + noOfSlidesMoves;
    updateContentHolder(moves);
    updateButtons();
}
function updateContentHolder(movement)
{ 
    var scrollAmount = 0;
    var i = 0;
    var cursli = 0;
    var sub = 0;
    var previous = 0;
    for(i = 0;i < imglen;i++)
    {
        sub = i+1;
        cursli = currentSlide-sub;
        if(currentSlide - 1 > i)
        {
            var prev = cursli-1;
            var ne_xt = currentSlide-1;
            if(cursli != 1)
            {
                previous = eval("document.getElementById("+prev+").clientWidth");
            }
            else if(currentSlide == imglen)
            {
                previous = document.getElementById(ne_xt).clientWidth;
            }
            scrollAmount += document.getElementById(cursli).clientWidth;
        }
    }
    var cal = 1;
    var scroll=0;
    var beg_sli=0;
    if(movement == "next")
    {
        if(currentSlide == (visibleSlides+1))
        {
            next = 0;
        }
        moveContentHolder(scrollAmount,next);
        next = scrollAmount;
    }
    else if(movement == "prev")
    {
        if((currentSlide+6) >= totalSlides)
        {
            beg_sli = totalSlides-visibleSlides;
        }
        else
        {
            beg_sli = currentSlide+visibleSlides;
        }
        if(currentSlide > 1)
        {
            for(i =beg_sli;i < (beg_sli+visibleSlides);i++)
            {
                prev = prev+eval("document.getElementById("+i+").clientWidth");
            }
        }
        else
        {
            prev = 0
                for(i = 1;i <= visibleSlides;i++)
                {
                    prev = prev + eval("document.getElementById("+i+").clientWidth");
                }
        }
        next = scrollAmount;
        moveContentHolderPrev(prev,scrollAmount);
    }
}
function moveContentHolder(scrollAmount,i)
{
    cal = i+30;
    scroll_amt = scrollAmount;
    if(cal <= scroll_amt)
    {
        document.getElementById("slide-scroller").scrollLeft=cal;
        setTimeout("moveContentHolder("+scrollAmount+","+cal+")",speed);
    }
    else
    {
        document.getElementById("slide-scroller").scrollLeft=scrollAmount;
    }
}
function moveContentHolderPrev(prev,scrollAmount)
{
    prev = prev-30;
    cal = scrollAmount+prev;
    if(prev >= 0)
    {
        document.getElementById("slide-scroller").scrollLeft=cal;
        setTimeout("moveContentHolderPrev("+prev+","+scrollAmount+")",speed);
    }
    else
    {
        document.getElementById("slide-scroller").scrollLeft=scrollAmount;
    }
}
function updateButtons()
{
    if(currentSlide <= (totalSlides-visibleSlides))
    {
        document.getElementById("slideshow-next").style.display="block";
        document.getElementById("slideshow-next_dis").style.display="none";
    }
    else
    {
        document.getElementById("slideshow-next_dis").style.display="block";
        document.getElementById("slideshow-next").style.display="none";
    }
    if(currentSlide > 1)
    {
        document.getElementById("slideshow-previous").style.display="block";
        document.getElementById("slideshow-previous_dis").style.display="none";
    }
    else
    {
        document.getElementById("slideshow-previous_dis").style.display="block";
        document.getElementById("slideshow-previous").style.display="none";
    }
}
function zs_inviteprivateUser(frm,page)
{
	var username = frm.usermailID.value;
	if(username.length == 0)
	{
		alert("Enter the user Mail ID  to publish the application privately.");
		return false;
	}
    	getHtmlForForm(frm,"zs_postInviteUser",frm);
	return false;
}
function zs_postInviteUser(result,frm)
{
	if(isSuccess(result))
	{
    	 	showMessages('Your users have been sent an email to add you as a developer in their workspace.');
		frm.usermailID.value = "";
		if(frm.name == "developerpage")
		{
			closeDialog();	
		}
		else 
		{
			showHideField('newUserField');
		}
	}
}
function zc_cofirmation(frm)
{
    	getHtmlForForm(frm,"zs_postConfirm",frm);
	return false;
}
function zs_postConfirm(result,frm)
{
	var name = document.getElementById("emailids").value;
	if(result.toLowerCase().indexOf("add") != -1)
	{
		location.href='/settings?addasdeveloper='+name;
	}
	else if(result.toLowerCase().indexOf("upgrade") != -1)
	{
		showMessages("To add more user <a href = '/upgradeplan'><b>Upgrade</b></a> your user plan");
	}
}

function showHideField(frm,con)
{
	var divstyle = byId(frm).style;
	if (divstyle.display == "none")
	{
		divstyle.display = "block";
	}
	else 
	{
		divstyle.display = "none";
	}
	if(con==true)
	{
		showHideField("publishform");//No I18N
	}
}
function showInviteUser()
{
	getHtml("/home/inviteUser?developerzone=true","showInviteDialogue");
}
function showInviteDialogue(result)
{
	showDialog(result,"position=absolute, left=250, top=170, closeButton=no, modal=yes" );
}
function showProjectReq(hideele,showele)
{
    if(authenticate())
    {
        if(!isUnDef(hideele))
        {
            var element = byId(hideele);
            var tabs = element.getElementsByTagName("li");

            for (var i = 0; i < tabs.length; i++)
            {
                if (tabs[i].className != "logocon" && tabs[i].className != "dev-logocon" && tabs[i].className != "header")
                {
                    tabs[i].className = "";
                }
                var refEle = byId(tabs[i].getAttribute("ref"));
                if (refEle != null)
                {
                    refEle.style.display = "none";
                }
            }
        }
        byId(showele).style.display="block";
        byId("dashboard").style.display="block";
        if(!isUnDef("zohoform84"))
        {
            byId("zohoform84").style.display="none";
        }
        dojo.event.topic.publish("/dashboard");
        var appgallery = byId("appgallery");
        if(appgallery != null)
        {
            appgallery.style.display="none";
        }
        else
        {
            byId("page-header").innerHTML = i18Arr['zc.developer.postyourrequirement'];//No I18N
        }
        zs_setInMC();
    }
    else
    {
        getHtmlForForm(getForm("/platform/login.jsp", new Array("serviceurl"), new Array('/public/postrequirement'),"Get"),"zs_showPostRequirementInfo");//No I18N
    }
}
function zs_showPostRequirementInfo(result)
{
         showDialog(result,'position=absolute, top=120, left=345, closeButton=no, modal=yes, draggable=no ,width=290px');//No I18N
}
function validateResponse(frm)
{
    if(byId("responseContent").value == '')
    {
        alert(i18Arr['marketplce.response.validatetitle']);//No I18N
        byId("responseContent").focus();
        return false;
    }
    return true;
}
function validateProjects(frm,remoteUser)
{
    if(byId('projecttitle').value == '')
    {
        alert(proReqi18Arr['marketplace.project.validate.title']);//No I18N
        byId('projecttitle').focus();
        return false;
    }
    if(byId('projectdesc').value == '')
    {
        alert(proReqi18Arr['marketplace.project.validate.desc']);//No I18N
        byId('projectdesc').focus();
        return false;
    }
    if(byId('projectcate').value == '-Select-')
    {
        alert(proReqi18Arr['marketplace.project.validate.category']);//No I18N
        byId('projectcate').focus();
        return false;
    }

    if(byId('projecttimespan').value == '' && (byId('project_reqtype').value == "Project" && byId('projecttype').value == "Fixed Billing"))
    {
        alert(proReqi18Arr['marketplace.project.validate.timespan']);//No I18N
        byId('projecttimespan').focus();
        return false;
    }
    if(byId('projectbudget').value == '' && (byId('project_reqtype').value == "Project" && byId('projecttype').value == "Fixed Billing"))
    {
        alert(proReqi18Arr['marketplace.project.validate.budget']);//No I18N
        byId('projectbudget').focus();
        return false;
    }
    else 
    {
       var budget_val = byId('projectbudget').value;
       var isMatched = budget_val.match(/\D/g);
       if(budget_val != 0 && isMatched == null)
       {
            alert(proReqi18Arr['marketplace.project.validate.budgetvalue']);//No I18N
            return false;
       }
    }
    if(byId('duration').value == "-Select-" && ((byId('project_reqtype').value == "Project" && byId('projecttype').value == "Hourly Billing") || byId('project_reqtype').value == "Consulting"))
    {
        alert(proReqi18Arr['marketplace.project.validate.duration']);//No I18N
        byId('duration').focus();
        return false;
    }
    if(byId('hrsweek').value == "-Select-" && ((byId('project_reqtype').value == "Project" && byId('projecttype').value == "Hourly Billing") || byId('project_reqtype').value == "Consulting"))
    {
        alert(proReqi18Arr['marketplace.project.validate.hourlyweek']);//No I18N
        byId('hrsweek').focus();
        return false;
    }
    if(byId('hrsrate').value == '' && ((byId('project_reqtype').value == "Project" && byId('projecttype').value == "Hourly Billing") || byId('project_reqtype').value == "Consulting"))
    {
        alert(proReqi18Arr['marketplace.project.validate.hourlyrate']);//No I18N
        byId('hrsrate').focus();
        return false;
    }
    else
    {
       var budget_val = byId('hrsrate').value;
       var isMatched = budget_val.match(/\D/g);
       if(budget_val != 0 && isMatched == null)
       {
            alert(proReqi18Arr['marketplace.project.validate.hourlyratevalue']);//No I18N
            return false;
       }
    }
    if(remoteUser == '')
    {
        if(byId('projectcontactemail').value == '')
        {
            alert(proReqi18Arr['marketplace.project.validate.emailid']);//No I18N
            byId('projectcontactemail').focus();
            return false;
        }
        if(byId('projectcontactemail').value != '' && (!(byId('projectcontactemail').value.match('@') && byId('projectcontactemail').value.match('.com'))))
        {
            alert(proReqi18Arr['marketplace.project.validate.properemailid']);//No I18N
            byId('projectcontactemail').focus();
            return false;
        }
    }
    if(byId('project_reqtype').value == "Project" && byId('projecttype').value == "Fixed Billing")
    {
        byId('duration').value = '';
        byId('hrsweek').value = '';
        byId('hrsrate').value = '';
    }
    else if(byId('project_reqtype').value == "Project" && byId('projecttype').value == "Hourly Billing")
    {
        byId("projecttimespan").value ='';
        byId("projectbudget").value ='';
    }
    else if(byId('project_reqtype').value == "Consulting")
    {
        byId("projecttimespan").value ='';
        byId("projectbudget").value ='';
    }
    return true;
}

function toggleColor(ele1,ele2,ele3,ele4,ele5,ele6)
{
    if(ele1 != null)
    {
        byId(ele1).className="project-unselected";
        byId(ele1).style.paddingBottom="8px";// No I18N
    }
    if(ele2 != null)
    {
        byId(ele2).className="project-selected";
        byId(ele2).style.paddingBottom="10px";//No I18N
    }
    if(ele5 == "Project")
    {
        byId("fixed").style.color="#000000";
        byId("fixed").style.fontWeight="bold";//No I18N
        byId("hrly").style.color="#08719E";
        byId("hrly").style.fontWeight="normal";//No I18N
        byId("pro_fixed").style.display="block";
        byId("project_reqtype").value="Project";//No I18N
        byId('projecttype').value = "Fixed Billing";//No I18N
        byId("duration").value="-Select-";//No I18N
        byId("hrsweek").value = "-Select-";//No I18N
        byId("hrsrate").value ='';

    }
    if(ele6 == "Consulting")
    {
        byId("duration").value="-Select-";//No I18N
        byId("hrsweek").value = "-Select-";//No I18N
        byId("hrsrate").value ='';
        byId("projecttype").value="None";//No I18N
        byId("project_reqtype").value="Consulting";//No I18N
    }
    zs_toggleDivs(ele3,ele4,ele5,ele6);
}

function zs_toggleDivs(ele1,ele2,listenTopic,todisplay)//todisplay a div where div id equals listentopic
{
    if(ele1 != null)
    {
        byId(ele1).style.display="none";
    }
    if(ele2 != null)
    {
        byId(ele2).style.display="block";
    }
    if(todisplay == true)
    {
        byId(listenTopic).style.display="block";
    }
    if(!isUnDef(listenTopic))
    {
        dojo.event.topic.publish("/"+listenTopic);
    }
}

function toggleProjectReq(hide_ele,show_ele,condition_id)
{
    if(hide_ele != null)
    {
        byId(hide_ele).style.display="none";
    }
    if(show_ele != null)
    {
        byId(show_ele).style.display="block";
    }
    if(condition_id == "Fixed_Span")
    {
        byId("fixed").style.color="#000000";
        byId("fixed").style.fontWeight="bold";//No I18N
        byId("hrly").style.color="#08719E";
        byId("projecttype").value="Fixed Billing";//No I18N

    }
    else if(condition_id == "Hourly_Span")
    {
        byId("fixed").style.color="#08719E";
        byId("hrly").style.color="#000000";
        byId("hrly").style.fontWeight="bold";//No I18N
        byId("projecttype").value="Hourly Billing";//No I18N
    }
    else if(condition_id == "None")
    {
        byId("location_container").className="project-unselected";
        byId("zipcode").value='';
        byId("city").value='';
        byId("location_container").style.marginTop="-5px";//No I18N
    }
    else if(condition_id == "Specify Others")
    {
        byId("location_container").className="location-container";
        byId("location_container").style.marginTop="-7px";//No I18N
    }
}
function zs_ShowPostRequirementInfo(result)
{
    showDialog(result,'position=absolute, top=8, left=180, closeButton=no, modal=yes, draggable=no');//No I18N
}
function appendArrList(proReqArr)
{
    proReqi18Arr = proReqArr;
}
function zs_backOrViewGallery(ele1,ele2,url)
{
    if(ele1 == "appgallery" && byId(ele1) != null)
    {
        toggleDivs(ele1,ele2)
    }
    else
    {
        if(window.history.length <= 1)
        {
            window.location.href = url;
        }
        else
        {
            window.history.back();
        }
    }
}
function projectTypeHover(ele,mouseeve) 
{
    if(mouseeve == "mousehover")
    {
        byId(ele).className="projectType-hover";
        byId(ele).style.fontWeight="bold";//No I18N
    }
    else if(mouseeve == "mouseout" && ele == "fixed")
    {
        byId(ele).className="project-fixedbilling-txt";
    }
    else if(mouseeve == "mouseout")
    {
        byId(ele).className="";
    }
    else
    {
        byId(ele).className="";
    }
}
