//Global Vars====
var memMouseX = 0;
var memMouseY = 0;
//===============

//addStoryToList==================================
function addStoryToList(IDStory) {
    var service = new AllServicesLinq(); // new GetListsService();
    service.GetReadList(IDStory, OnCompleteList, OnErrorList, OnTimeOutList);
}

function OnCompleteList(arg) {
    var element = document.getElementById("rightDiv");
    element.style.display = '';
    if (!document.getElementById("addStoryDiv")) {
        var newdiv = document.createElement('div');
        var divIdName = 'addStoryDiv';
        newdiv.setAttribute('id', divIdName);
        newdiv.innerHTML = arg;
        element.appendChild(newdiv);
    }
}

function OnTimeOutList(arg) {
    var element = document.getElementById("rightDiv");
    element.innerHTML = "<font color=red>An error has occurred. Please try again.</font>";
}

function OnErrorList(arg) {
    var element = document.getElementById("rightDiv");
    element.innerHTML = "<font color=red>An error has occurred. Please try again.</font>";
}
//==================================================

//getStory==========================================
function toggle(obj, state) {
    var el = document.getElementById(obj);
    if (el.style.display != 'none' || !(state == "true")) {
        el.style.display = 'none';
    }
    else {
        el.style.display = '';
    }
}



//Search===================

function getStory(storyID, doMatchKeywords, doAllocateStory, searchTerm, IDList) {
    var element = document.getElementById("rightDiv");
//    element.style.backgroundColor = "#ffffff";
    //    element.style.border = "none";
    element.style.backgroundColor = "#eeeeee";
    element.style.border = "1px solid #cccccc";
    element.style.display = "";
   
    element.style.top = (mouseY - 20) + "px";

    if (!IE) {
        element.style.marginLeft = '330px';
    }

    element.innerHTML = "<img alt='Loading' style='width:24px;height:24px;border:none;' src='Art/Ajax/loading.gif' /><p style='margin-top:6px;'>Loading...</p>";
    var service = new AllServicesLinq(); // new GetStoryWebService();
    service.GetStory(storyID, doMatchKeywords, doAllocateStory, searchTerm, IDList, OnCompleteStory, OnErrorStory, OnTimeOutStory);
}


function OnCompleteStory(arg) {
    var element = document.getElementById("rightDiv");
//    element.style.backgroundColor = "#eeeeee";
//    element.style.border = "1px solid #cccccc";
    element.style.display = 'none';
    
    if (arg != "" && arg != null) {

        //element.innerHTML = "<div id='closeRightDiv' onclick=\"javascript:toggle('rightDiv', false);\" style='margin:1px;text-align:center;cursor:hand;float:right;right:0px;top:0px;border:1px solid black;width:10px;'>X</div>" + arg;
        element.innerHTML = "<div onclick='javascript:$(\"#rightDiv\").slideUp(\"slow\");' id='closeRightDiv' style='margin:1px;text-align:center;cursor:hand;float:right;right:0px;top:0px;border:1px solid black;width:10px;'>X</div>" + arg;
        } else element.innerHTML = "<font color=red>An error has occurred. Please try again.</font>";


        $("#rightDiv").slideDown("slow");

}

function OnTimeOutStory(arg) {
    var element = document.getElementById("rightDiv");
    element.innerHTML = "<font color=red>An error has occurred. Please try again.</font>";
}

function OnErrorStory(arg) {
    var element = document.getElementById("rightDiv");
    element.innerHTML = "<font color=red>An error has occurred. Please try again.</font>";

}

//List=================
function getLists() {

try
{
    var element = document.getElementById("listDiv");
    element.innerHTML = "<img alt='Loading' style='width:24px;height:24px;border:none;' src='Art/Ajax/loading.gif' /><p style='margin-top:6px;'>Loading...</p>";

    var service = new AllServicesLinq(); // new GetListsService();
    service.GetLists(OnSuccess, OnFail, OnTimeOut);

} 
catch (e) { }
    
    
    
}

function OnSuccess(arg) {
    var element = document.getElementById("listDiv");
    // element.innerHTML = "<img alt='Loading' style='width:24px;height:24px;border:none;' src='Art/Ajax/loading.gif' /><p style='margin-top:6px;'>Loading...</p>";

    element.style.display = '';
    element.innerHTML = arg;
}

function OnFail(arg) {
    var element = document.getElementById("listDiv");
    element.innerHTML = "Error Occured : " + arg.toString();
}

function OnTimeOut(arg) {
    var element = document.getElementById("listDiv");
    element.innerHTML = "TimeOut Occured : " + arg.toString();
}

function deleteList(IDList) {
    var service = new AllServicesLinq(); // new ManagersService();
    ok = confirm("Realy delete List #" + IDList + "?");

    if (ok) {
        //alert("Deleting...");
        service.deleteList(IDList, OnSuccessDeleteList);
        

    } else {
        //alert("OK. Doing nothing...");
    }
}


function OnSuccessDeleteList(arg) {
    getLists();
}


function getListContacts(IDRead) {
    hideAll();
    var element = document.getElementById("keywordDiv");
    element.innerHTML = "<img alt='Loading' style='width:24px;height:24px;border:none;' src='Art/Ajax/loading.gif' /><p style='margin-top:6px;'>Loading...</p>";
    element.style.zIndex = 100;
    element.style.top = mouseY + 'px';
    element.style.left = mouseX + 'px';
    toggle("keywordDiv", true);

    var service = new AllServicesLinq(); // new GetKewordService();
    service.GetListContacts(IDRead, OnSuccessListContacts, OnFail2, OnTimeOut2);
}

function OnSuccessListContacts(arg) {
    var element = document.getElementById("keywordDiv");
    element.style.display = '';
    element.innerHTML = "<div onclick=\"javascript:toggle('keywordDiv', false);\" style='margin:1px;text-align:center;cursor:hand;float:right;right:0px;top:0px;border:1px solid black;width:10px;'>X</div>" + arg;
}


function getKeywords(IDRead) {
    hideAll();
    var element = document.getElementById("keywordDiv");
    element.innerHTML = "<div style='text-align:left'><img alt='Loading' style='width:24px;height:24px;border:none;' src='Art/Ajax/loading.gif' /><p style='margin-top:6px;'>Loading...</p></div>";
    element.style.zIndex = 100;
    element.style.top = mouseY + 'px';
    element.style.left = mouseX + 'px';
    element.style.display = '';

    var service = new AllServicesLinq(); // new GetKewordService();
    service.GetKeywordsList(IDRead, OnSuccess2, OnFail2, OnTimeOut2);

}

function OnSuccess2(arg) {
    var element = document.getElementById("keywordDiv");
    element.style.display = 'none';
    element.innerHTML = "<div onclick=\"javascript:$('#keywordDiv').fadeOut('fast');\" style='margin:1px;text-align:center;cursor:hand;float:right;right:0px;top:0px;border:1px solid black;width:10px;'>X</div>" + arg;
    
    
    $("#keywordDiv").fadeIn("fast");
     
}

function OnFail2(arg) {
    var element = document.getElementById("keywordDiv");
    element.innerHTML = "Error Occured : " + arg.toString();
}

function OnTimeOut2(arg) {
    var element = document.getElementById("keywordDiv");
    element.innerHTML = "TimeOut Occured : " + arg.toString();
}


function selectRead(IDReadVar) {
    var element = document.getElementById("leftDiv");
    element.style.backgroundColor = "#ffffff";
    element.style.border = "none";
    
    element.style.display = "";
    
    
    element.innerHTML = "<img alt='Loading' style='width:24px;height:24px;border:none;' src='Art/Ajax/loading.gif' /><p style='margin-top:6px;'>Loading...</p>";

//    var elementRight = document.getElementById("rightDiv");
//    elementRight.style.display = "";
//    elementRight.innerHTML = "";
//    elementRight.style.backgroundColor = "#ffffff";
    //    elementRight.style.border = "none";
    $("#rightDiv").slideUp("slow");



    //Input Vars
    //==========
    var IDRead = IDReadVar; //document.getElementById("ctl00_ctl00_ContentPlaceHolder1_content3_DropDownList1").value;
    var service = new AllServicesLinq(); // new SearchReviewsService();
    service.GetReadStories(IDRead, OnCompleteGetRead, OnErrorGetRead, OnTimeOutGetRead);
}

function OnCompleteGetRead(arg) {
    var element = document.getElementById("leftDiv");
    element.style.backgroundColor = "#eeeeee";
    element.style.border = "1px solid #cccccc";
    element.style.display = 'none';
    element.innerHTML = arg;

    $("#leftDiv").fadeIn("fast");

    //Scroll to collection of Stories
     // window.location.hash = "#leftDiv";

}

function OnErrorGetRead(arg) {
}

function OnTimeOutGetRead(arg) {
}

function deleteKeyword(IDList, key, IDKeyword) {
    var service = new AllServicesLinq(); // new ManagersService();
    ok = confirm("Realy delete keyword #" + key + "?");

    if (ok) {
        //alert("Deleting...");
        service.deleteKeyword(IDKeyword);
        getManager("keyword", IDList,false);
        
    } else {
        //alert("OK. Doing nothing...");
    }
}



function addKeyword(IDList) {
  
    var service = new AllServicesLinq(); // new ManagersService();
    var keyword = document.getElementById("addKeywordTextBox");
    
    service.addKeyword(IDList, keyword.value, OnCompleteAddKeyWord, OnError, OnTimeOut);
}


function OnCompleteAddKeyWord(arg) {
    //var element = document.getElementById("listDiv");
    // element.innerHTML = "<img alt='Loading' style='width:24px;height:24px;border:none;' src='Art/Ajax/loading.gif' /><p style='margin-top:6px;'>Loading...</p>";
    //element.style.display = '';
    //element.innerHTML = arg;

    //alert("Successfully added keyword!");
    getLists();
    getManager("keyword", arg, false);

    var element = document.getElementById("manageDiv");
    element.style.top = memMouseY + "px";
    element.style.left = memMouseX + "px";
    
}


function setKeywordType(IDKeyword) {
    //alert("Whoooohooooo!");
    var service = new AllServicesLinq(); // new ManagersService();
    var keywordType = document.getElementById("ddl_keywordType" + IDKeyword);
    service.setKeywordType(IDKeyword, keywordType.options[keywordType.selectedIndex].value, OnCompleteSetKeyWordType, OnError, OnTimeOut);
}


function OnCompleteSetKeyWordType(arg) {
    //var element = document.getElementById("listDiv");
    // element.innerHTML = "<img alt='Loading' style='width:24px;height:24px;border:none;' src='Art/Ajax/loading.gif' /><p style='margin-top:6px;'>Loading...</p>";
    //element.style.display = '';
    //element.innerHTML = arg;

    //alert("Successfully added keyword!");
    //getLists();
    //getManager("keyword", arg);
}




//Managers==============================================




function getManager(type, IDRead, mouseClicked) {
    //hideAll();
    var element = document.getElementById("manageDiv");
    //toggle("manageDiv", true);
    element.innerHTML = "<div style='text-align:left'><img alt='Loading' style='width:24px;height:24px;border:none;' src='Art/Ajax/loading.gif' /><p style='margin-top:6px;'>Loading...</p></div>";

    element.style.display = "";
    
    
    if (mouseClicked == false) {
        
        element.style.top = memMouseY + 'px';
        element.style.left = memMouseX + 'px';
        } else {
        //Added to Float Div
        element.style.zIndex = 100;
        element.style.top = mouseY + 'px';
        element.style.left = mouseX + 'px';
        memMouseY = mouseY;
        memMouseX = mouseX;
        //======================
    }
    var service = new AllServicesLinq(); // new ManagersService();
    if (type == "keyword")
        service.getKeywordManager(IDRead, OnCompleteManager, OnErrorManager, OnTimeOutManager);
    else service.getDeliveryManager(IDRead, OnCompleteManager, OnErrorManager, OnTimeOutManager);
}

function OnCompleteManager(arg) {
    var element = document.getElementById("manageDiv");
    element.style.display = 'none';
   
    element.innerHTML = "<div onclick=\"javascript:$('#manageDiv').fadeOut('fast');\" style='margin:1px;text-align:center;cursor:hand;float:right;right:0px;top:0px;border:1px solid black;width:10px;'>X</div>" + arg;
    $("#manageDiv").fadeIn("fast");
    //Scroll to managerBoxes
    //window.location.hash = "";
    //window.location.hash = "#managerDiv";

}

function OnTimeOutManager(arg) {
    var element = document.getElementById("rightDiv");
    element.innerHTML = "<font color=red>An error has occurred. Please try again.</font>";
}

function OnErrorManager(arg) {
    var element = document.getElementById("rightDiv");
    element.innerHTML = "<font color=red>An error has occurred. Please try again.</font>";
}




function setsms(IDContact, IDList) {
    // var saveProgressDiv = document.getElementById("saveProgressDiv");
    // saveProgressDiv.innerHTML = "Saving...";
    var smsCB = document.getElementById("smsCB" + IDContact);

    if (smsCB.checked == true)
    { setDeliveryOption("sms", IDContact, IDList, true); }
    else setDeliveryOption("sms", IDContact, IDList, false);
    //  alert("SMS Set : " + id);
}

function setmms(IDContact, IDList) {
    var mmsCB = document.getElementById("mmsCB" + IDContact);
    if (mmsCB.checked == true)
    { setDeliveryOption("mms", IDContact, IDList, true); }
    else setDeliveryOption("mms", IDContact, IDList, false);
}

function setemail(IDContact, IDList) {
    //var saveProgressDiv = document.getElementById("saveProgressDiv");
    //saveProgressDiv.innerHTML = "Saving...";
    var emailCB = document.getElementById("emailCB" + IDContact);

    if (emailCB.checked == true)
        setDeliveryOption("email", IDContact, IDList, true);
    else setDeliveryOption("email", IDContact, IDList, false);
    //  alert("Email Set : " + IDContact);
}

function setlist(IDContact, IDList) {
    //var saveProgressDiv = document.getElementById("saveProgressDiv");
    //saveProgressDiv.innerHTML = "Saving...";
    var listCB = document.getElementById("listCB" + IDContact);

    if (listCB.checked == true)
        setDeliveryOption("list", IDContact, IDList, true);
    else setDeliveryOption("list", IDContact, IDList, false);
    //  alert("Email Set : " + IDContact);
}



function setDeliveryOption(type, IDContact, IDList,enabled) {
    var element = document.getElementById("saveProgressDiv");
    element.style.display = '';
    element.innerHTML = "Saving Option...";
    var service = new AllServicesLinq(); // new SetOptionsService();
    service.setDeliveryOption(type, IDContact, IDList, enabled, OnCompleteOption, OnErrorOption, OnTimeOutOption);
}

function OnCompleteOption(arg) {
    var element = document.getElementById("saveProgressDiv");
    element.style.display = '';
    element.innerHTML = arg;

}

function OnTimeOutOption(arg) {
    var element = document.getElementById("saveProgressDiv");
    element.innerHTML = "<font color=red>An error has occurred. Please try again.</font>";
}

function OnErrorOption(arg) {
    var element = document.getElementById("saveProgressDiv");
    element.innerHTML = "<font color=red>An error has occurred. Please try again.</font>";
}
//======================================================

//Search================================================
/*
function document.onkeydown() {

if (event.keyCode == 13) {
event.returnValue = false;
event.cancel = true;

}
}
*/
/* Disable Enter Key*/
function stopRKey(evt) {
    var evt = (evt) ? evt : ((event) ? event : null);
    var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
    if ((evt.keyCode == 13) && (node.type == "text")) { return false; }
}
document.onkeypress = stopRKey;


function doSearch(orderType) {


    var element = document.getElementById("leftDiv");
    element.style.backgroundColor = "#ffffff";
    element.style.border = "none";
    element.innerHTML = "<img alt='Loading' style='width:24px;height:24px;border:none;' src='Art/Ajax/loading.gif' /><p style='margin-top:6px;'>Loading...</p>";
    


    var elementRight = document.getElementById("rightDiv");
    elementRight.innerHTML = "";
    elementRight.style.backgroundColor = "#ffffff";
    elementRight.style.border = "none";



    //Input Vars
    //==========
    var IDRead = document.getElementById("ctl00_ctl00_ContentPlaceHolder1_content3_DropDownList1").value;
    var IDSubCat = document.getElementById("ctl00_ctl00_ContentPlaceHolder1_content3_DropDownListSubCat").value;
    var startDate = document.getElementById("ctl00_ctl00_ContentPlaceHolder1_content3_TextBox1").value;
    var endDate = document.getElementById("ctl00_ctl00_ContentPlaceHolder1_content3_TextBox2").value;
    var keywords = document.getElementById("ctl00_ctl00_ContentPlaceHolder1_content3_TextBox3").value;
    var publication = document.getElementById("ctl00_ctl00_ContentPlaceHolder1_content3_TextBox4").value;

    var searchHeadline = document.getElementById("CheckboxHeadline").checked;
    var searchBody = document.getElementById("CheckboxBody").checked;

    //==========

    if (keywords.length == 1) {
        element.style.display = '';
        element.innerHTML = "<h6>Please enter 2 or more characters to search for in the 'Keywords' field.</h6>";
        return;
    }

    var service = new AllServicesLinq(); // new SearchReviewsService();

    service.Search(publication, IDSubCat, searchHeadline, searchBody, IDRead, startDate, endDate, keywords, orderType, OnComplete, OnError, OnTimeOutSearch);


}

function OnComplete(arg) {
    var element = document.getElementById("leftDiv");
    element.style.backgroundColor = "#eeeeee";
    element.style.border = "1px solid #cccccc";
    element.style.display = 'none';
    element.innerHTML = arg;
    
    $("#leftDiv").fadeIn("fast");
   
   
}

function OnError(arg) {
}

function OnTimeOutSearch(arg) {
}


//======================================================

//SetLists==============================================
function setList(IDStory) {
    if (IDStory != "") {
        var element = document.getElementById("readsDDL");
        if (element.value != "0") {
            var service = new AllServicesLinq(); // new GetListsService();
            service.SetReadList(IDStory, element.value, OnCompleteSetList, OnErrorSetList, OnTimeOutSetList);
        }
    }
    //alert("Setting " + IDStory + " to " + element.value);
}

function OnCompleteSetList(arg) {
    var element = document.getElementById("rightDiv");
    if (arg == "EntryExists") {
           element.innerHTML += "<br /><font color=red>Story already in list</font>";
    } else element.innerHTML += "<br /><font color=green>Added story to list</font>";
}

function OnTimeOutSetList(arg) {
    var element = document.getElementById("rightDiv");
    element.innerHTML = "<font color=red>An error has occurred. Please try again.</font>";

}

function OnErrorSetList(arg) {
    var element = document.getElementById("rightDiv");
    element.innerHTML = "<font color=red>An error has occurred. Please try again.</font>";


}
//======================================================

//TrackMouse============================================
var IE = document.all ? true : false;
if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;
var mouseX = 0;
var mouseY = 0;


////function getMouseXY(e) {
////    if (IE) { // grab the x-y pos.s if browser is IE
////        mouseX = event.clientX + document.documentElement.scrollLeft;
////        mouseY = event.clientY + document.documentElement.scrollTop;
////    }
////    else {  // grab the x-y pos.s if browser is NS
////        mouseX = e.pageX;
////        mouseY = e.pageY;
////    }
////    if (mouseX < 0) { mouseX = 0; }
////    if (mouseY < 0) { mouseY = 0; }
////    //document.Show.MouseX.value = mouseX;
////    //document.Show.MouseY.value = mouseY;
////    return true;
////}


function getMouseXY(e) // works on IE6,FF,Moz,Opera7
{
    if (!e) e = window.event; // works on IE, but not NS (we rely on NS passing us the event)

    if (e) {
        if (e.pageX || e.pageY) { // this doesn't work on IE6!! (works on FF,Moz,Opera7)
            mouseX = e.pageX;
            mouseY = e.pageY;
            algor = '[e.pageX]';
            if (e.clientX || e.clientY) algor += ' [e.clientX] '
        }
        else if (e.clientX || e.clientY) { // works on IE6,FF,Moz,Opera7
            // Note: I am adding together both the "body" and "documentElement" scroll positions
            //       this lets me cover for the quirks that happen based on the "doctype" of the html page.
            //         (example: IE6 in compatibility mode or strict)
            //       Based on the different ways that IE,FF,Moz,Opera use these ScrollValues for body and documentElement
            //       it looks like they will fill EITHER ONE SCROLL VALUE OR THE OTHER, NOT BOTH 
            //         (from info at http://www.quirksmode.org/js/doctypes.html)
            mouseX = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
            mouseY = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
            algor = '[e.clientX]';
            if (e.pageX || e.pageY) algor += ' [e.pageX] '
        }
    }
}


function hideAll() {
    var element;
    
    //element = document.getElementById("rightDiv");
    //element.style.display = "none";

    //element = document.getElementById("leftDiv");
    //element.style.display = "none";

    element = document.getElementById("keywordDiv");
    element.style.display = "none";

    element = document.getElementById("manageDiv");
    element.style.display = "none";
}



//======================================================