﻿// Ajax defaults:
var imageHasAccessUrl ='images/aTick.gif';
var imageHasAccessAlt ='Enabled, click to disable';
var imageNoAccessUrl ='images/aCross.gif';
var imageNoAccessAlt ='Disabled, click to enable';
var imageLoadingUrl ='images/ajax-loader.gif';

var http_request = false;

/*	UpdatePermissions()
	Written by Andrew Delicata, August 2007.
	Ajax function to update Contact Group Access    */
function UpdatePermissions(id, ItemId, ImageId, PermissionType)
{

	var oImg = document.getElementById(ImageId);
	var PreviousImageUrl = oImg.src;
	var GrantAccess = (PreviousImageUrl.toLowerCase().indexOf(imageHasAccessUrl.toLowerCase()) >=0) ? false : true;
	oImg.src = imageLoadingUrl;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
	   http_request = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // IE
	   http_request = new ActiveXObject("Microsoft.XMLHTTP");
	} 
	window.status='Changing permissions...... loading....';
	var url='';
	switch (PermissionType)
	{
		case 'ContactGroupAccess':
			url='webservices/adminService.asmx/UpdateContactGroupAccess?ContactGroupId=' + id + '&AccessItemId=' + ItemId + '&GrantAccess=' + GrantAccess;
			break;
		case 'CustomerModulePermissions':
			url='webservices/adminService.asmx/UpdateCustomerModulePermissions?intModuleId=' + id + '&intCustomerId=' + ItemId + '&GrantAccess=' + GrantAccess;
			break;
		case 'ContactGroupUser':
			url='webservices/adminService.asmx/UpdateContactGroupUser?ContactGroupId=' + id + '&ContactId=' + ItemId + '&GrantAccess=' + GrantAccess;
			break;
	}

	http_request.onreadystatechange = function ()
	   {
			if (http_request.readyState == 4)
			{
				if (http_request.status == 200)
				{
					var xmldoc = http_request.responseXML;
					var root;
					if (xmldoc.documentElement.textContent){
						root = xmldoc.documentElement.textContent;
					}else{
						root = xmldoc.selectSingleNode('boolean').text;
					}
					if (root=='false')
					{
						// Could not update (session might have expired)
						oImg.src=PreviousImageUrl;
						window.status='Could not change permissions.  Your session may have timed out.';
					}else{
						window.status='Permissions have been saved.';
						if (GrantAccess)
						{
							oImg.src=imageHasAccessUrl;
							oImg.alt=imageHasAccessAlt;
						}else{
							oImg.src=imageNoAccessUrl;
							oImg.alt=imageNoAccessAlt;
						}
					}
				}else{
					// ajax error occured
					oImg.src=PreviousImageUrl;
					window.status='An error occurred, could not save permission changes.';
				}               
		   }
	   }
	http_request.open('GET', url, true);
	http_request.send(null);
}
function RegisterPanelSubmit(keyStroke) {
    var keyCode = (document.layers) ? keyStroke.which : keyStroke.keyCode;
    if (keyCode == 13) {
        __doPostBack('ctl00$ucRegisterPanel$btnSignUp', '');
        return false;
    } else {
        return true;
    }
   
}

function validNumberSpace(keyStroke) {
    var keyCode = (document.layers) ? keyStroke.which : keyStroke.keyCode;
	if (keyCode == 13) {
   		document.returnValue = false;
     }
    if ((keyCode < 46 || keyCode > 57) && keyCode != 32 && keyCode != 8 && keyCode != 127 && keyCode != 188 && keyCode != 190 && keyCode != 9) {
   		document.returnValue = false;
		return false;		
	} 
	document.returnValue = true;
}
function validNumber(keyStroke) {
    var keyCode = (document.layers) ? keyStroke.which : keyStroke.keyCode;
    if (keyCode == 13) {
   		document.returnValue = false;
    }
	
	if ((keyCode < 48 || keyCode > 57) && TestForSystemKeys(keyCode) == false && keyCode != 188 && keyCode != 190) {
   		document.returnValue = false;
		return false;		
	} 
	document.returnValue = true;
}
function validInteger(keyStroke) {
    var keyCode = (document.layers) ? keyStroke.which : keyStroke.keyCode;
	if (keyCode == 13) {
   		document.returnValue = false;
    }
    if ((keyCode < 48 || keyCode > 57) && TestForSystemKeys(keyCode) == false) {
   		document.returnValue = false;
		return false;		
	} 
	document.returnValue = true;
}
function validAlphaNumber(keyStroke) {
    var keyCode = (document.layers) ? keyStroke.which : keyStroke.keyCode;
	if (keyCode == 13) {
	    document.returnValue = false;
	    return false;
	}
	if ((keyCode < 9 || keyCode > 200) && TestForSystemKeys(keyCode) == false) {
   		document.returnValue = false;
		return false;		
	} 
	document.returnValue = true;
}
function validAlphaOnly(keyStroke) {
    var keyCode = (document.layers) ? keyStroke.which : keyStroke.keyCode;
	if (keyCode == 13) {
   		document.returnValue = false;
	}
	if ((keyCode < 65 || keyCode > 90) && (keyCode < 97 || keyCode > 122) && TestForSystemKeys(keyCode) == false) {
   		document.returnValue = false;
		return false;		
	} 
	document.returnValue = true;
}
function validDate(keyStroke) {
    var keyCode = (document.layers) ? keyStroke.which : keyStroke.keyCode;
	if (keyCode == 13) {
   		document.returnValue = false;
	}
	if ((keyCode < 48 || keyCode > 57) && keyCode != 191 && TestForSystemKeys(keyCode) == false) {
   		document.returnValue = false;
		return false;		
	} 
	document.returnValue = true;
}
function TestForSystemKeys(keyCode) {
    //checks for all system keys in one place.
    window.status = '';
    switch (keyCode) {
        case 37:// right cusror
            return true;
            break;
        case 38:// left cursor
            return true;
            break;
        case 8: // delete
            return true;
            break;
        case 46:// backspace
            return true;
            break;
        case 9: //  tab
            return true;
            break;
        default:
            window.status = 'input not valid';
            return false;
            break;
    }
}

function isEmail(email){
  var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
  if (filter.test(email))
	return true
  else{
	return false
  }
} 

function sendEmail (email) {
	window.location='mailto:'+email;
}

function openWebPage(url) {
	window.open(url);
}

function CancelEdit() {
	var bolResult=confirm('Are you sure you want to cancel your editing for this record?\n\nPlease be aware that any changes you have made will not be saved.')
	if (bolResult==false) {
		return false;
	} else {
	    //history.go(-1);
	if (Request.QueryString("DetailType") == '4') {
	    parent.tb_remove();
	    parent.location.reload();
	}
	    return true;
	}
}
function OpenThickBox(pagename, height, width, title) {

    var strUrl = pagename + '&detailType=4&keepThis=true&TB_iframe=true&height=' + height + '&width=' + width;
    $(document).ready(function () {
        tb_show(title, strUrl, false);

    });

}
function showHelp() {
    
    pathArray = window.location.pathname.split( '/' );
    newPathname = pathArray[pathArray.length-1];

	var winHeight = 550;
	var winWidth = 850;
	var scrWidth = screen.availWidth - 2;
	var scrHeight = screen.availHeight-40;
	var winTop = (scrHeight-winHeight)/2;
	var winLeft = (scrWidth-winWidth)/2;
	window.open('onlineHelp.aspx?pageName='+newPathname,'onlineHelp','status=yes,scrollbars=yes,resizable=no,width='+winWidth+',height='+winHeight+',left='+winLeft+',top='+winTop+'');

}
   function Toggle(tableNo, bSave) {
   	var oTbl = document.getElementById('tblContent' + tableNo);
   	var oTdLink = document.getElementById('tdHeader' + tableNo);
   	var oImg = document.getElementById('img' + tableNo);

   	if (oTbl.style.display == 'none') {
   		oTbl.style.display = '';
   		oImg.src = 'Images/contract.gif';
   		//oTdLink.innerHTML = 'Hide';
   	} else {
   		oTbl.style.display = 'none';
   		oImg.src = 'Images/expand.gif';
   		//oTdLink.innerHTML = 'Show';
   	}
   	if (bSave)
   		SaveStates(tableNo);
   }
   var CookieType = '';
   function LoadStates(strType) {
   	CookieType = strType;
   	var cookieString = readCookie("LiquidusStates" + CookieType);
   	if (cookieString != "") {
   		var id = cookieString.split('~');
   		for (var i = 0; i < id.length; i++) {
   			if (id[i] != "") {
   				Toggle(id[i], false);
   			}
   		}
   	}
   }

   function SaveStates(tableNo) {
   	var cookieString = readCookie("LiquidusStates" + CookieType);
   	if (cookieString.indexOf("~" + tableNo) == -1) {
   		cookieString = cookieString + "~" + tableNo;
   	} else {
   		cookieString = cookieString.replace("~" + tableNo, "");
   	}

   	eraseCookie("LiquidusStates" + CookieType);
   	createCookie("LiquidusStates" + CookieType, cookieString, null);
   }

   function readCookie(name) {
   	var nameEQ = name + "=";
   	var ca = document.cookie.split(';');
   	for (var i = 0; i < ca.length; i++) {
   		var c = ca[i];
   		while (c.charAt(0) == ' ') c = c.substring(1, c.length);
   		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
   	}
   	return "";
   }

   function createCookie(name, value, days) {
   	if (days) {
   		var date = new Date();
   		date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
   		var expires = "; expires=" + date.toGMTString();
   	}
   	else var expires = "";
   	document.cookie = name + "=" + value + expires + "; path=/";
   }

   function eraseCookie(name) {
   	createCookie(name, "", -1);
   }

 
   function showDiv(divID) {
       $('#divContent' + divID).slideDown(500);
       $('#divHeader' + divID).removeClass('divHeaderContracted').addClass('divHeaderExpanded');
   }
   function hideDiv(divID) {
       $('#divContent' + divID).slideUp(500);
       $('#divHeader' + divID).removeClass('divHeaderExpanded').addClass('divHeaderContracted');
   }
   function hideDivFast(divID) {
       $('#divContent' + divID).hide();
       $('#divHeader' + divID).removeClass('divHeaderExpanded').addClass('divHeaderContracted');
   }
   function toggleDiv(divID) {
       var divClass = $('#divHeader' + divID).attr("class");
       if (divClass == 'divHeaderContracted') {
           showDiv(divID);
       } else {
           hideDiv(divID);
       }
   }

