﻿
var defaultButton = null;

function isSafari(){
    return ( navigator.userAgent.indexOf( 'Safari' ) != -1 );
}

/*Checks the amount of written chars in a textbox and prevents more characters than the maxLength.*/
function checkLength(evt,oObject,maxLength) 
{
    evt = evt || window.event; 
    
    if (oObject.value.length<maxLength) 
    {
        evt.returnValue = true;
    }
    else 
    {    
        if(document.all) //IE
        {
            if ((evt.keyCode>=37 && evt.keyCode<=40) || (evt.keyCode==8)) 
            {
                evt.returnValue = true;
            }
            else
            {
                evt.returnValue = false; 
            } 
        } 
        else /*Not IE*/
        {
            if ((evt.which>=37 && evt.which<=40) || (evt.which==8) || (evt.which==0)) 
            {
                //Keys that the user should be able to press. For example Backspace. In firefox Delete and more buttons seems to have the code 0.
            }
            else
            {
                evt.preventDefault(); 
            }
        } 
    } 
} 


/*For WestarcTextBox - shows the amount of written chars.*/
function writtenChars(oObject,spanName,maxChars) 
{
    document.getElementById(spanName).innerHTML='(' + oObject.value.length + '/' + maxChars + ')';
}


/* Show/Hide Photo */
function showPhoto(obj, src) {
    var div = document.getElementById("mouseoverPic");
    var img = div.getElementsByTagName("img")[0];
    div.style.display = 'block';
    var curleft = 0;
    var curtop = 0;
    while (obj.offsetParent) {
        curleft += obj.offsetLeft;
        curtop += obj.offsetTop;
        obj = obj.offsetParent;
    }
    if(isSafari())
    {
        div.style.left = (curleft + 25) + "px";
        div.style.top = (curtop + 30) + "px";
    }
    else
    {
	    div.style.left = (curleft + 10) + "px";
        div.style.top = (curtop + 15) + "px";
    }
    img.src = src;
}   
function hidePhoto() {
    var div = document.getElementById("mouseoverPic");
    var img = div.getElementsByTagName("img")[0];
    img.src = "";
    document.getElementById("mouseoverPic").style.display = 'none';
}

/* Guestbook */

/* Show AnswerBox */
function openAnswerBox(obj, userID, username) 
{
    var div = document.getElementById("guestbookAnswerBox");
    var input = div.getElementsByTagName("input")[0];
    //div.style.display = 'block';
    div.style.visibility = 'visible';
    div.style.left = (obj.offsetLeft) + "px";
    div.style.top = (obj.offsetTop - 150) + "px";
    input.value = userID;
    document.getElementById("answerTo").innerHTML = username;
}

function closeGbBox(id,textbox,validator) {
    var div = document.getElementById(id);
    div.style.visibility = 'hidden';
    document.getElementById(textbox).value = "";
    document.getElementById(validator).style.visibility = "hidden";
}

function closeUserNoteBox(div,textbox) {
    var div = document.getElementById(div);
    div.style.visibility = 'hidden';
     /*document.getElementById(textbox).value = "";
   document.getElementById(validator).style.visibility = "hidden";*/
}

function openCommentBox(obj, prayerID) {
    var div = document.getElementById("prayerCommentBox");
    var input = div.getElementsByTagName("input")[0];
    div.style.visibility = 'visible';
    var curleft = 0;
    var curtop = 0;
    while (obj.offsetParent) {
        curleft += obj.offsetLeft;
        curtop += obj.offsetTop;
        obj = obj.offsetParent;
    }
    
    if (document.all) /* then it is Internet Explorer) */
    {
        div.style.left = (curleft - 40) + "px";
        div.style.top = (curtop - 160) + "px";
    }
    else
    {
        div.style.left = (curleft) + "px";
        div.style.top = (curtop - 160) + "px";
    }
    
    
    input.value = prayerID;
    //document.getElementById("answerTo").innerHTML = username;
}

function openUserNoteBox(id, obj, currentUserID, xparam) {
    var div = document.getElementById(id);
    div.style.visibility = 'visible';
    var curleft = 0;
    var curtop = 0;
    while (obj.offsetParent) {
        curleft += obj.offsetLeft;
        curtop += obj.offsetTop;
        obj = obj.offsetParent;
    }
    
    if (document.all) /* then it is Internet Explorer) */
    {
        div.style.left = (curleft - xparam) + "px";
        div.style.top = (curtop - 40) + "px";
    }
    else
    {
        div.style.left = (curleft - xparam - 10) + "px";
        div.style.top = (curtop - 40) + "px";
    }
}



/* --------------- */


/* Show/Hide Div */
function showDiv(divID) 
{
    document.getElementById(divID).style.display = 'inline';
}
function hideDiv(divID) 
{
    document.getElementById(divID).style.display = 'none';
}

function openUser(userID){
 window.open(urlRoot + "Code/Profile/PopupProfile.aspx?viewedUserID="+userID,'7eu'+userID,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,height=600,width=694,top=40,left=40');
}

function openAdminUser(userID){
 window.open(urlRoot + "Code/Admin/PopupProfile.aspx?viewedUserID="+userID,'7eu'+userID,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,height=600,width=694,top=40,left=40');
}

function openGallery(parameter,userID){
 window.open(urlRoot + "Code/Profile/PopupProfile.aspx?plinkID=6&viewedUserID="+parameter,'7eu'+userID,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,height=650,width=694,top=40,left=40');
}

function openBlog(parameter){
 window.open(urlRoot + "Code/Profile/PopupProfile.aspx?plinkID=9&viewedUserID="+parameter,'7eu'+parameter,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,height=650,width=694,top=40,left=40');
}

function openBlogComments(viewedUserID,blogEntryID){
 window.open(urlRoot + "Code/Profile/PopupProfile.aspx?plinkID=10&viewedUserID="+viewedUserID+"&beid="+blogEntryID,'7eu'+viewedUserID,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,height=650,width=694,top=40,left=40');
}
/*function openCalendarItem(obj,calendarItemID){
    var left = obj.offsetLeft;
    var top = obj.offsetTop;
    window.open(urlRoot + "Code/U2U/CalendarItem.aspx?calendarItemID="+calendarItemID,'cal'+calendarItemID,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,height=200,width=450,top='+top+',left='+left);
}*/

function openInParentWin(link){
 window.opener.location = link;
}

/*
*   profileMoreInfo
*/
function checkInputSize(which, maxsize) {
  if(which.value.length > maxsize) {
    alert("user, jsTooMuchText" + maxsize);
    which.value = which.value.substring(0, maxsize-1);
  }
}

var sObj = null;
function setStripWidth(divID) {
    var container;
    if(container = document.getElementById(divID))
    {
        var divs = container.getElementsByTagName('div');
        var offsetLeft = 0;
        
	    for(i=0;i<divs.length;i++)
	    {
	        if(divs[i].className == "thumbContainer")
	            offsetLeft += divs[i].offsetWidth;
    	
	    }
        document.getElementById('innerScroll').style.width = (offsetLeft + 119) + "px";
    }
}



/* Plopp Sound */
var checkNewMessagesRefreshTime = 0;
function CheckNewMessages(userID, refreshTime)
{
    checkNewMessagesRefreshTime = refreshTime;
    setTimeout(function() {
                CallWebservice(userID);
            }, 1000);
}

function CallWebservice(userID)
{
   if(userID != null)
        Sjueh.WebServices.CheckNewMessages.GetData(userID, PlaySound);
    
    setTimeout(function() {
                CallWebservice(userID);
            }, checkNewMessagesRefreshTime);
}

function PlaySound(newMessage)
{
    //Mail
    var newMailOne = document.getElementById("newMailOne");
    var newMailMany = document.getElementById("newMailMany");
    var noNewMails = document.getElementById("noNewMails");
    if(newMessage.NewMails == 1)
    {
        newMailOne.className = "show";
        newMailMany.className = "hide";
    } 
    else if(newMessage.NewMails > 1)
    {
        newMailOne.className = "hide";
        newMailMany.className = "show";
        noNewMails.innerHTML = newMessage.NewMails;
    }
    
    //Guestbook
    var newGBOne = document.getElementById("newGBOne");
    var newGBMany = document.getElementById("newGBMany");
    var noGbsMails = document.getElementById("noGbsMails");
    if(newMessage.NewGBMess == 1)
    {
        newGBOne.className = "show";
        newGBMany.className = "hide";
    } 
    else if(newMessage.NewGBMess > 1)
    {
        newGBOne.className = "hide";
        newGBMany.className = "show";
        noGbsMails.innerHTML = newMessage.NewGBMess;
    }

    if(newMessage.PlaySound && document.all)
    {
        document.getElementById("sound").src = urlRoot + "Sound/notify.wav";
    
    }
}

/* popupBox */
function closePopupBox(id) {
    var div = document.getElementById(id);
    div.style.visibility = 'hidden';
}


/* Help functio for JQuery AJAX call to page method */
function PageMethod(fn, paramArray, successFn, errorFn)
{
  var pagePath = window.location.pathname;
  //Create list of parameters in the form:
  //{"paramName1":"paramValue1","paramName2":"paramValue2"}
  var paramList = '';
  if (paramArray.length > 0)
  {
    for (var i=0; i<paramArray.length; i+=2)
    {
      if (paramList.length > 0) paramList += ',';
      paramList += '"' + paramArray[i] + '":"' + paramArray[i+1] + '"';
    }
  }
  paramList = '{' + paramList + '}';
  $.ajax({
      type: "POST",
      url: pagePath + "/" + fn,
      contentType: "application/json; charset=utf-8",
      data: paramList,
      dataType: "json",
      success: successFn,
      error: errorFn
  })
;}

function CallWebservice(webService, onSuccess, onFail) {
    var args = '';
    var l = arguments.length;
    if (l > 3) {
        for (var i = 3; i < l - 1; i += 2) {
            if (args.length != 0) args += ',';
            args += '"' + arguments[i] + '":"' + arguments[i + 1] + '"';
        }
    }
    $.ajax({
        type: "POST",
        url: urlRoot + webService,
        data: "{" + args + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: onSuccess,
        fail: onFail
    });
}

jQuery.fn.toggleWithState = function(searchValue) {
    return this.each(function() {
        var obj = $(this);
        var src = obj.attr("src");
        var srcsel = src.substr(0, src.length - 4) + "_sel.png";
        var state = ($.cookie.get(obj.attr("id"))) ? $.cookie.get(obj.attr("id")) : "";
        obj.attr("src", src.substr(0, src.length - 4) + state + ".png");
        obj.click(function() {
            if (obj.attr("src").indexOf("sel") > 0) {
                obj.attr("src", src);
                $.cookie.set(obj.attr("id"), "", { expires: 100, path: '/' });
                state = "";
            } else {
                obj.attr("src", srcsel);
                $.cookie.set(obj.attr("id"), "_sel", { expires: 100, path: '/' });
                state = "_sel";
            }
            return false;
        });
    });
};

function getPhotos(obj, searchValue) {
    var genderFilter = "Both";
    var showFemales = ($.cookie.get(obj.parent().children()[0].id) == "_sel") ? true : false;
    var showMales = ($.cookie.get(obj.parent().children()[1].id) == "_sel") ? true : false;
    if (showFemales && !showMales)
        genderFilter = "Female";
    else if (showMales && !showFemales)
        genderFilter = "Male";
    CallWebservice("WebServices/PhotoBox.asmx/GetPhotos", function(response) { ajaxSuccess(response, obj.closest(".boxheader").next().attr("id")); }, ajaxFail,
            "noPhotos", "12",
            "genderFilter", genderFilter,
            "searchCriteria", searchValue,
            "userID", $.cookie.get("userID"),
            "pnlID", obj.closest(".boxheader").next().attr("id"));
    return false;
}

function ajaxSuccess(response, panel) {
    $("#" + panel).html("");
    $.each(response.d, function(i, data) {
        $("#" + panel).append(data);
    });
}

function ajaxFail(response) {
    alert("An error occurred.");
}


jQuery.fn.cleanWhitespace = function() {
    textNodes = this.contents().filter(
        function() { return (this.nodeType == 3 && !/\S/.test(this.nodeValue)); })
        .remove();
}

/* END */


