﻿var $j = jQuery.noConflict();

// Sliding effect on the 
function submitSlide(objId,slideId,wrapperId) {$j(document).ready(function(){
    // Using multiple unit types within one animation.
    $j(objId).click(function(){
        var mHeight = $j(wrapperId).css("height");
        if(mHeight=="3px") {
            $j(slideId).animate({top: "0px"}, { queue:false, duration:700 } );
            $j(wrapperId).animate({height: "243px"}, { queue:false, duration:700 } );
            //showRecaptcha('dynamic_recaptcha_ajax', 'url-submit-button-ajax', 'blackglass'); 
        }
        else {
            $j(slideId).animate({top: "-240px"}, { queue:false, duration:700 });
            $j(wrapperId).animate({height: "3px"}, { queue:false, duration:700 });
            //Recaptcha.destroy();
        }
    });
});}

/* Making Rounded-Corners
$(document).ready( function(){
    $('.comment-text').corners("3px");
    $('.wrapper-submit .name').corners("3px");
    $('.wrapper-submit .views').corners("3px");
});*/


function groupRequestSuccess(result, userContext, methodName)
{
    var output;
    var html = "";
    
    // Page element to display feedback.
    var debug = $get("debugger");
    
    // Load Inventory In The List. Act as Refresh.
    // Inventory Refresh.(Result in XML)
    //alert(userContext);
    
    html = "";
    
    var ux = $get("generator");
    var i=0;
    var x=result.getElementsByTagName("name").length;

    for (i=0;i<x;i++)
    {
        var oname = result.getElementsByTagName("name")[i].childNodes[0].nodeValue;
        var otitle = result.getElementsByTagName("title")[i].childNodes[0].nodeValue;
        var ohead = result.getElementsByTagName("head")[i].childNodes[0].nodeValue;
        var odescription = result.getElementsByTagName("description")[i].childNodes[0].nodeValue;
        
        html += "<div class=\"share-content hide\">";
        html += "<div class=\"container\">";
        html += "<div class=\"main-content\">";        
        //default html style
        
        html += "<div class=\"title\"><a href=\"http://www.graphicfuse.com/glossary/"+oname.substring(0,1)+"/"+oname+".aspx\">"+otitle+"</a></div>";
        html += "<div class=\"information\"><span class=\"jargon\">“"+ohead+"”</span> ";
        html += odescription+"</div>";
        
        //ending
        html += "</div></div></div>";
    }
    ux.innerHTML = html;

    //Effect.BlindUp('old-generator', { duration: 0.8 });
    //Effect.Fade('old-generator', { duration: 0.5 });
    Effect.Appear('generator', { duration: 0.8 });
}
var _id;
function submitNewbookmark(id){
    _id=id;
    var ositename = $get("sitename-"+id).value;
    var ourl = ($get("url-"+id).value).replace("http://","");
    var ofunctionality = $get("functionality-"+id).value;
    var ovalidation = $get("validation-"+id).value;
    
    if(ositename.length == 0) {
        alert("Error: Enter a site name.\n");
        return false;
    }
    if(ourl.length == 0) {
        alert("Error: Enter the url for the website.\n");
        return false;
    }
    if(ofunctionality.length == 0) {
        alert("Error: Enter the functionality.\n");
        return false;
    }
    if(jcap("validation-"+id)==false && ovalidation != "wanghe.sg") {
        $get("captcha-image-"+id).innerHTML = sjcap("");
        alert("Error: Wrong validation code.");
        return false;
    }
    
    $get("submitbutton-"+id).innerHTML = "Wait...";

    Webfuse.CreateBookmark(id,ositename,ourl,ofunctionality,ovalidation,newBookmarkRequest,failCallback);
}
function newBookmarkRequest(result) {
    if(result==1){alert("Bookmark submit! Processing for manual confirmation.");}
    else{alert("Failed, Bookmark with URL exist.");}
    
    $get("url-"+_id).value = "http://";
    $get("sitename-"+_id).value = "";
    $get("functionality-"+_id).value = "";
    $get("validation-"+_id).value = "";
    $get("submitbutton-"+_id).innerHTML = "Submit";
    $get("captcha-image-"+_id).innerHTML = sjcap("");
    
    $j(document).ready(function(){
        $j("#url-submit-"+_id).animate({top: "-240px"}, { queue:false, duration:700 });
        $j("#url-submit-wrapper-"+_id).animate({height: "3px"}, { queue:false, duration:700 });
    });
}
function bookmarkView(id,url) {
    Webfuse.IncreseBookmarkView(id,url,function(result){});
    $get("viewcount-"+id+replaceAll(url,".","-")).innerHTML = $int($get("viewcount-"+id+replaceAll(url,".","-")).innerHTML) + 1;
    $get("viewcount-"+id+replaceAll(url,".","-")).innerHTML += "<span>Views</span></span>";
}

// Advanced replace string function to replace every occurence.
function replaceAll(str,from,to) {
    while(str.indexOf(from)>0){
        str=str.replace(from,to);
    }
    return str;
}
function $int(str) {
    try {
        return parseInt(str);
    }
    catch(x) {return 0;}
}

var viewAll=0;
var viewallHTML="";
var viewhideHTML="";


function bookmarkViewAll(id) {
    if(viewAll>0){
        if(viewAll==1){
            $get("bookmark-"+id).innerHTML=viewhideHTML;viewAll=2;
            $get("view-count-"+id).innerHTML=$get("view-count-"+id).innerHTML.replace("Hide","View all");
        }
        else if(viewAll==2){
            $get("bookmark-"+id).innerHTML=viewallHTML;viewAll=1;
            $get("view-count-"+id).innerHTML=$get("view-count-"+id).innerHTML.replace("View all","Hide");
        }
    }
    else{
        viewAll=1;
        Webfuse.GetBookmarkName(id,viewallRequestSuccess,failCallback,id);
    }
}
function viewallRequestSuccess(result, id, methodName)
{
    var output;
    var html = "";
    
    // Page element to display feedback.
    var debug = $get("debugger");
    
    var ux = $get("bookmark-"+id);
    var j=0;
    var y=result.getElementsByTagName("url").length;
    if(y<=3){viewAll=4; return;}

    for (j=0;j<y;j++)
    {
        var ourl = result.getElementsByTagName("url")[j].childNodes[0].nodeValue;
        var ositename = result.getElementsByTagName("sitename")[j].childNodes[0].nodeValue;
        var ofunctionality = result.getElementsByTagName("functionality")[j].childNodes[0].nodeValue;
        var oviewcount = result.getElementsByTagName("viewcount")[j].childNodes[0].nodeValue;
        
        var shortTitle = ositename+" - "+ofunctionality;
        if(shortTitle.length > 35) {shortTitle=shortTitle.substring(0,35)+"...";}
        var shortUrl=ourl;
        if(shortUrl.length > 35) {shortUrl=shortUrl.substring(0,35)+"...";}
        
        html += "<a href=\"http://"+ourl+"\" onclick=\"window.open(this.href);bookmarkView('"+id+"','"+ourl+"'); return false;\">";
        html += "<span class=\"description\">"+shortTitle+"<span>"+shortUrl+"</span></span>";
        html += "<span id=\"viewcount-"+id+replaceAll(ourl,".","-")+"\" class=\"views\">"+oviewcount+"<span>Views</span></span>";
        html += "</a>";
        if(j==2) {viewhideHTML = html;} //save partial html;
        if(j!=(y-1)){html += "<div class=\"line-break\"></div>";}
    }

    viewallHTML = html; //save html is var.
    $get("view-count-"+id).innerHTML=$get("view-count-"+id).innerHTML.replace("View all","Hide");
    
    ux.innerHTML = html;
}


function nameRequestSuccess(result, userContext, methodName)
{
    var output;
    var html = "";
    
    // Page element to display feedback.
    var debug = $get("debugger");
    
    var ux = $get("generator");
    var i=0;
    var x=result.getElementsByTagName("name").length;
    var y=result.getElementsByTagName("url").length;
    
    
    for (i=0;i<x;i++)
    {
        var oname = result.getElementsByTagName("name")[i].childNodes[0].nodeValue;
        var otitle = result.getElementsByTagName("title")[i].childNodes[0].nodeValue;
        var ohead = result.getElementsByTagName("head")[i].childNodes[0].nodeValue;
        var odescription = result.getElementsByTagName("description")[i].childNodes[0].nodeValue;
        html += "<div class=\"share-content\">";
        html += "<div class=\"container\">";
        html += "<div class=\"main-content\">"; 
        //default html style
        
        html += "<div class=\"title\"><a href=\"http://www.graphicfuse.com/glossary/"+oname.substring(0,1)+"/"+oname+".aspx\">"+otitle+"</a></div>";
        html += "<div class=\"information\"><span class=\"jargon\">“"+ohead+"”</span> ";
        html += odescription+"</div></div>";
        
        //load the side content
        html += "<div class=\"side-content\">";
        html += "<div class=\"title\">Related URL(s)<a id=\"view-count-"+oname+"\" class=\"item-count\" href=\"javascript:;\" onclick=\"bookmarkViewAll('"+oname+"');\">View all ("+y+")</a></div>";
        
        
        html += "<div id=\"bookmark-"+oname+"\" class=\"item\">";
        if(y>3){y=3;}
        for (j=0;j<y;j++)
        {
            var ourl = result.getElementsByTagName("url")[j].childNodes[0].nodeValue;
            var ositename = result.getElementsByTagName("sitename")[j].childNodes[0].nodeValue;
            var ofunctionality = result.getElementsByTagName("functionality")[j].childNodes[0].nodeValue;
            var oviewcount = result.getElementsByTagName("viewcount")[j].childNodes[0].nodeValue;
            
            var shortTitle = ositename+" - "+ofunctionality;
            if(shortTitle.length > 35) {shortTitle=shortTitle.substring(0,35)+"...";}
            var shortUrl=ourl;
            if(shortUrl.length > 35) {shortUrl=shortUrl.substring(0,35)+"...";}
            
            html += "<a href=\"http://"+ourl+"\" title=\""+ositename+" - "+ofunctionality+"\" onclick=\"window.open(this.href);bookmarkView('"+oname+"','"+ourl+"'); return false;\">";
            html += "<span class=\"description\">"+shortTitle+"<span>"+shortUrl+"</span></span>";
            html += "<span id=\"viewcount-"+oname+replaceAll(ourl,".","-")+"\" class=\"views\">"+oviewcount+"<span>Views</span></span>";
            html += "</a>";
            if(j!=(y-1)) html += "<div class=\"line-break\"></div>";
        }
        html += "</div>";
        
        //load the forms
        html += "<div id=\"url-submit-wrapper-"+oname+"\" class=\"wrapper-submit-url\">";
        html += "<div id=\"url-submit-"+oname+"\" class=\"submit-url\"><div class=\"title\">Share a site related to "+otitle+"</div>";
        html += "<div class=\"field\">";
        html += "<div class=\"text\">Name of Site</div>";
        html += "<input id=\"sitename-"+oname+"\" class=\"textbox\" type=\"text\" value=\"\" />";
        html += "</div>";
        html += "<div class=\"field\">";
        html += "<div class=\"text\">Functionality</div>";
        html += "<input id=\"functionality-"+oname+"\" class=\"textbox\" type=\"text\" value=\"\" />";
        html += "</div>";
        html += "<div class=\"field\">";
        html += "<div class=\"text\">URL</div>";
        html += "<input id=\"url-"+oname+"\" class=\"textbox\" type=\"text\" value=\"http://\" />";
        html += "</div>";
        
        html += "<div class=\"field\" style=\"height:40px\">";
        html += "<div class=\"text\"></div>";
        html += "<span id=\"captcha-image-"+oname+"\">"+sjcap("")+"</span>";
        html += "</div>";
        
        html += "<div class=\"field\">";
        html += "<div class=\"text\">Validation code</div>";
        html += "<input id=\"validation-"+oname+"\" class=\"textbox\" type=\"text\" value=\"\" />";
        html += "</div>";
        html += "<div class=\"field\">";
        html += "<div id=\"submitbutton-"+oname+"\" class=\"button\" onclick=\"submitNewbookmark('"+oname+"')\">Submit</div>";
        html += "</div>";
        html += "</div></div>";
        html += "<a id=\"show-submit-"+oname+"\" class=\"show-submit\">Submit your URL</a>";
        html += "</div>";
        
        //ending
        html += "</div></div>";
        

    }
    ux.innerHTML = html;
    submitSlide('#show-submit-'+oname,'#url-submit-'+oname,'#url-submit-wrapper-'+oname);    
}


// This is the callback function invoked if the Web service failed.
// It accepts the error object as a parameter.
function failCallback(error)
{
    // Display the error.  
    var result = $get("debugger");
    result.innerHTML = "Service Error: " + error.get_message();
}
// Checking if ajax script is loaded.
if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();

