﻿var lpUrl = "/link/ListingPreview.aspx";
var pgUrl = "/link/PhotoGallery.aspx";

//Object to format the Please Wait message it top right corner
// This get used in the $.blockUI(waitMsgObt) statement
var waitMsgOpt = {
    message: "<b>Please Wait ...</b>",
    centerY: 0,
    overlayCSS: {
        backgroundColor: '#FFFFFF',
        opacity: 0 
    },
    css: {
        cursor: 'wait',
        top: '10px',
        left: '',
        right: '10px',
        padding: '5px',
        border: 'none',
        backgroundColor: '#00CC00',
        color: '#fff',
        '-webkit-border-radius': '5px', 
        'moz-border-radius': '5px;' } 
};

function PleaseWait() {
    $.blockUI(waitMsgOpt);
}

function formatPhotoTitle(title, currentArray, currentIndex, currentOpts) {
    //Formats the caption of our photos
    return '<div style="float:left;text-align:left;">' + (title && title.length ? '<b>' + title + '</b><br/>' : '') + 'Image ' + (currentIndex + 1) + ' of ' + currentArray.length + '</div>';
}

function ShowWait() {
    $('body').css('cursor', 'wait');
}

function HideWait() {
    $('body').css('cursor', 'auto');
}

/*ListingGroup and CMA Tree Scripts */
function onClientContextMenuItemClicked(sender, args) {
    var menuItem = args.get_menuItem();
    var treeNode = args.get_node();

    switch (menuItem.get_value()) {
        case "DELFOLDER":
            break;
        case "RENAME":
            treeNode.get_treeView()._startEdit(treeNode);
            break;
        case "NewFolder":
            break;
        case "MarkAsRead":
            markAllAsRead(treeNode);
            break;
    }
}

function onClientNodeDropping(sender, args,img) {

    //If the target is the trash can then confirm the delete
    if (args.get_htmlElement().id == img) {
        var check = confirm("Delete Group - '" + args.get_sourceNode().get_text() + "' ?");
        if (!check) {
            args.set_cancel(true);
        }
    }
    else {
        //if node is dropped on tree then move node else cancel
        if (args.get_destNode() == null) {
            args.set_cancel(true);
        }
    }
}

function onClientContextMenuShowing(sender, args) {
    var treeNode = args.get_node();
    treeNode.set_selected(true);
    setMenuItemsState(args.get_menu().get_items(), treeNode);
}

function setMenuItemsState(menuItems, treeNode) {
    for (var i = 0; i < menuItems.get_count(); i++) {
        var menuItem = menuItems.getItem(i);
        switch (menuItem.get_value()) {
            case "DELFOLDER":
                if (treeNode.get_nodes().get_count() > 0) {
                    menuItem.set_enabled(false);
                } else {
                    menuItem.set_enabled(true);
                }
                break;
        }
    }
}
    

/* Other Stuff */

function gridToolTipSetHeader(sender, eventArgs) {
    var controller = Telerik.Web.UI.RadToolTipController.getInstance();
    var tooltip = controller.get_activeToolTip();
    if (sender._targetControlID.indexOf("lIcons_pc") != -1) {
        sender.set_title("Price Changes");
    }
    if (sender._targetControlID.indexOf("lIcons_oh") != -1) {
        sender.set_title("Next Open House");
    }
}

function lp(l, w) {
    var wm = GetRadWindowManager();
    var oWnd = wm.getWindowByName(w);
    if (oWnd == null) {
        oWnd = radopen(lpUrl + "?id=" + l, w);
        x.set_width(700);
        x.set_height(700);
        x.center();

    } else {
        oWnd.setUrl(oWnd.get_navigateUrl() + "?id=" + l);
        oWnd.show();
    }
    return false;
}

function pg(m, l, a, w) {
    var wm = $find(m)
    var oWnd = wm.getWindowByName(w);
    oWnd.setUrl(oWnd.get_navigateUrl() + "?listingid=" + l + "&add=" + a);
    oWnd.show();
    return false;
}

function centerUpdatePanel(sender, eventArgs) {
    centerElementOnScreen(document.getElementById($find(sender.get_defaultLoadingPanelID()).get_id()));
}

function centerElementOnScreen(element) {
    var scrollTop = document.body.scrollTop;
    var scrollLeft = document.body.scrollLeft;
    var viewPortHeight = document.body.clientHeight;
    var viewPortWidth = document.body.clientWidth;
    if (document.compatMode == "CSS1Compat") {
        viewPortHeight = document.documentElement.clientHeight;
        viewPortWidth = document.documentElement.clientWidth;
        scrollTop = document.documentElement.scrollTop;
        scrollLeft = document.documentElement.scrollLeft;
    }
    var topOffset = Math.ceil(viewPortHeight / 2 - element.offsetHeight / 2);
    var leftOffset = Math.ceil(viewPortWidth / 2 - element.offsetWidth / 2);
    var top = scrollTop + topOffset - 40;
    var left = scrollLeft + leftOffset - 70;
    element.style.position = "absolute";
    element.style.top = top + "px";
    element.style.left = left + "px";
}


//used for menu rollover image swapping
function img_switch(ImgID, ImgURL)
	{
		var myImg = document.getElementById(ImgID);
		myImg.src = ImgURL;
	}

function setOnChangeHandlers() {
	var form = document.forms[0];
	var elementCount = form.length;
	var agent = navigator.userAgent.toLowerCase();
    var isIE = agent.indexOf("msie") > -1;
      
	for (var i = 0; i < elementCount; i++) {
		var element = form.elements[i];
		
		if (element.type == "text" || element.type == "textarea" || element.type == "select" || element.type == "file" || element.type == "select-one")
		{
		    if (isIE)
		        	element.attachEvent("onchange", SetDirty);
		    else
		    {
		        if (element.onchange == null)
			        element.onchange = SetDirty;
			}
		}	  
		else if (element.type == "checkbox" || element.type == "radio")
		{
		    if (isIE)
		        	element.attachEvent("onclick", SetDirty);
		    else
		    {
		        if (element.onclick == null)
		            element.onclick = SetDirty;
		    }
		}
	}
}
	
function OkayToNavigate(confirmText) {
if (PageTracksDirty()) {
    if (PageIsDirty()) 
	    if (!ConfirmDiscardUnsavedChanges(confirmText)) return false;
		}
	return true;
}

function NavigateTo(url) {	
   if (!OkayToNavigate()) return;
    else 
        location.href = url;
}

function PageTracksDirty() {
	if (document.getElementById('CheckDirty').value == "true") return true;
	else return false;
}

function PageIsDirty() {	
   	if (document.getElementById('DirtyFlag').value == "true") return true;
	else return false;
}

function SetDirty() {
	document.getElementById('DirtyFlag').value = "true";
}

function ClearDirty() {
	document.getElementById('DirtyFlag').value = "false";
}
function ConfirmDiscardUnsavedChanges(confirmText) {
    var defaultConfirmText = "There are unsaved changes." +
						    "\n\nDo you want to proceed without saving? ";
    			
    if (!confirmText)
	    confirmText = defaultConfirmText;

    if (!confirm(confirmText)) return false;
    else return true;
 }
 
 function openWindow(url, dialogName, dialogHeight, dialogWidth)
 {
    if (dialogHeight == 0)
		dialogHeight = 550;
		
	if (dialogWidth == 0)
		dialogWidth = 750;
		
	var strFeatures = "Height=" + dialogHeight + ", ";
	strFeatures += "Width=" + dialogWidth + ", ";
	strFeatures += "resizable, ";
	strFeatures += "menubar=no, ";
	strFeatures += "status=no, scrollbars";

	var result = window.open(url, dialogName, strFeatures);
 }
 function openWindowWithMenu(url, dialogName, dialogHeight, dialogWidth)
 {
    if (dialogHeight == 0)
		dialogHeight = 550;
		
	if (dialogWidth == 0)
		dialogWidth = 750;
		
	var strFeatures = "Height=" + dialogHeight + ", ";
	strFeatures += "Width=" + dialogWidth + ", ";
	strFeatures += "resizable,menubar=yes,status=yes,scrollbars";
	
	var result = window.open(url, dialogName, strFeatures);
 }
 


 function ValidateEmail(source,args)
 {
    var regexp = new RegExp("\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
    var userInput = args.Value;
    var match;
    
    if (userInput.indexOf(",") > -1) // user is sending to > 1 address
    {
        var emailArray = userInput.split(",");
        for (var i = 0; i < emailArray.length; i++)
        {
            match = regexp.exec(emailArray[i]);
            if (match == null)
                break;
        }
    }
    else
        match = regexp.exec(userInput);
    
    args.IsValid = (match != null);
 }
 

